1

What is the difference between Calling a method by one of the three methods ?

  1. via Creating a new thread
  2. Synchronous call through Invoke
  3. Asynchronous call through BeginInvoke and alternatively EndInvoke

I am assuming all the calls will be using a matching delegate under the hood.

4

1 回答 1

1

(假设 .NET 给定了您的用户名……)这三个选项是使用委托的不同方式。

创建新线程并不是专门“调用方法”,而是使用指定的委托作为在新线程中运行的方法来启动新线程。这将为您启动一个全新的线程,并在单独的线程中运行您的委托。

通过 BeginInvoke/EndInvoke 异步调用委托是类似的,只是它将使用 ThreadPool 而不是创建新线程。

通过 Invoke 同步调用委托只会直接在当前执行的线程上调用委托。这实际上只是调用了委托所引用的方法。

于 2012-04-05T18:06:21.250 回答