C#:Control.BeginInvoke在哪里运行?

Svi*_*ish 1 c# multithreading winforms

这种方法究竟做了什么?我在想它可能会进入一个单独的线程,但是在正确的线程上处理控制更新等事情.但现在我开始认为它可能只是在UI线程上运行.这意味着从UI调用控件上的BeginInvoke与调用Invoke几乎相同?要么?

Jon*_*eet 5

它基本上将委托添加到"要执行的任务"的队列中.UI线程按顺序运行这些任务.

Control.Invoke和之间的区别Control.BeginInvoke基本上是Control.Invoke阻止工作线程,直到任务在UI线程上执行,而BeginInvoke不是.我不知道随便是否有任何区别BeginInvoke,并Invoke当你从UI线程调用它.