如何创建一个在CLR应用程序中更改标签的线程?

时间:2013-07-24 01:48:44

标签: clr

如果我的问题太全面,我道歉:

我有使用visual c ++和Qt的经验,我知道如何在这些环境中执行此操作,但为了团队,我需要创建一个CLR应用程序。

我有一个CLR应用程序如下:

带有标签元素的CLR应用程序。 (由于新帐户,无法发布图片。)

我的要求:

  • 我想创建一个更改“Status here”标签的线程,以显示一个简单的数据字符串。
  • 原因是:我有另一个基于c ++的客户端应用程序,它通过命名管道将数据发送到此应用程序。
  • 我的目标是为此GUI表单创建一个单独的线程,它阻止客户端的连接和读取,并以表格形式显示此表单中的数据。
  • 我想要做的是知道如何在从管道接收数据后修改表单中的项目
  • 我应该使用哪种线程,我应该使用CLR线程池还是使用System :: Threading创建一个线程,如下所示:

    ThreadStart^ pTOperation = gcnew ThreadStart(startPipe);
    Thread^ pipeThread = gcnew Thread(pTOperation);
    pipeThread->Start();
    

我的startPipe操作将执行创建服务器管道,连接客户端,读取和修改GUI元素的功能。 CLR是否有限制从另一个线程修改主要表单元素,如Qt。 (我必须为此实现一个信号/插槽系统。)

我的想法:我可以将参数传递给线程函数,该函数是指向表单标签的指针并在线程函数内更改它的属性吗?

1 个答案:

答案 0 :(得分:0)

我调查了开始调用,它似乎是我现在唯一的解决方案。如果其他人有任何建议,请帮助。

http://www.codeproject.com/Articles/10311/What-s-up-with-BeginInvoke