Delegate.Invoke()是否在新线程上启动委托所指向的方法,或者您是否需要使用Delegate.BeginInvoke()?

时间:2012-03-20 19:48:40

标签: c# delegates

Delegate.Invoke()是否在新线程上启动委托指向的方法,或者您是否需要使用Delegate.BeginInvoke()来执行此操作?

由于

3 个答案:

答案 0 :(得分:2)

Delegate.Invoke:在同一个线程上同步执行。 Delegate.BeginInvoke:在线程池线程上异步执行。

来自这里的答案 - What's the difference between Invoke() and BeginInvoke()

答案 1 :(得分:0)

它运行在当前运行的同一个线程上,除非你执行BeginInvoke

答案 2 :(得分:0)

Delegate.Invoke()就像调用委托一样,这将导致在同一个线程上调用委托。要在委托上进行异步调用,必须使用BeginInvoke调用它,最终将在另一个线程上调用(然后激活Callback方法)