Control.Invoke()与Control.BeginInvoke()

时间:2011-02-18 06:30:56

标签: c#

  

可能重复:
  What's the difference between Invoke() and BeginInvoke()

首先,我想为我糟糕的语法道歉,因为英语不是我的母语。

这是我的理解:

Control.Invoke(delegated_method)  // Executes on the thread wich the control was created on
witch holds its handle ,typically  this would be the main thread of a winform application .

Control.BeginInvoke(delegated_method // Executes asynchronously on a threadPool Thread .

根据MSDN,它说

  

异步执行委托   控件的线程   底层句柄是在。上创建的。

我的问题:

我是否理解beginInvoke将此事件中的主线程视为线程池,并在“获取机会”时在主线程上执行委托方法?

提出的另一个问题, 是否可以在主线程上创建一个控件? 若有,有人可以举个例子吗?

1 个答案:

答案 0 :(得分:1)

是的,它将在创建它的UI线程的调度程序上执行。

至于在后台线程上创建一个控件,我不建议它。此外,您还没有提到您正在使用的技术。