Delegate委托与多线程(线程调用主窗口控件).docVIP

  • 1
  • 0
  • 约3.86千字
  • 约 4页
  • 2017-06-08 发布于重庆
  • 举报

Delegate委托与多线程(线程调用主窗口控件).doc

Delegate委托与多线程(线程调用主窗口控件)

最近写到两个程序都用到了多线程,但是由于需要调用主线程UI,所以总是会出错,Google了一下,终于找到了使用Delegate 委托 的解决方法,现在贴出来存档并且分享: 很多时候写windows程序都需要结合多线程,在.net中用如下得代码来创建并启动一个新的线程。 public void ThreadProc ; Thread thread new Thread new ThreadStart ThreadProc ; thread.IsBackground true; thread.Start ; 但是很多时候,在新的线程中,我们需要与UI进行交互,在.net中不允许我们直接这样做。可以参考MSDN中的描述: “Windows 窗体”使用单线程单元 STA 模型,因为“Windows 窗体”基于本机 Win32 窗口,而 Win32 窗口从本质上而言是单元线程。STA 模型意味着可以在任何线程上创建窗口,但窗口一旦创建后就不能切换线程,并且对它的所有函数调用都必须在其创建线程上发生。除了 Windows 窗体之外,.NET Framework 中的类使用自由线程模型。 STA 模型要求需从控件的非创建线程调用的控件上的任何方法必须被封送到(在其上执行)该控件的创建线程。基类 Control 为此目的提供了若干方法(Invoke、BeginInvoke 和 E

文档评论(0)

1亿VIP精品文档

相关文档