可能重复:
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将此事件中的主线程视为线程池,并在“获取机会”时在主线程上执行委托方法?
提出的另一个问题, 是否可以在主线程上创建一个控件? 若有,有人可以举个例子吗?
答案 0 :(得分:1)
是的,它将在创建它的UI线程的调度程序上执行。
至于在后台线程上创建一个控件,我不建议它。此外,您还没有提到您正在使用的技术。