1

我有一个带有 WCF 代理的示例 WinForms 应用程序。我正在使用 FromAsync 返回一个 Task 并在返回结果之前等待任务完成:

private bool Foo() {   
  var proxy = new MyProxy();   
  var request = new ProxyRequest();

  var task = Task<ReturnType>.Factory.FromAsync<ProxyRequest>(client.BeginCall, client.EndCall, request, null);   
  task.Wait();   
  return true; 
}

从按钮调用此方法时,单击表单,UI 线程被阻塞。为什么?

4

2 回答 2

6

因为在调用task.Wait().

于 2012-07-24T21:04:34.303 回答
2

因为你在打电话task.Wait()。它在调用线程上同步等待任务完成。

于 2012-07-24T21:05:02.460 回答