private async void StartTasks_Click(object sender, RoutedEventArgs e)
{
await Task.WhenAll(GetSomeData());
lblResult.Text = "Got data?";
}
private async Task GetSomeData()
{
System.Net.ServicePointManager.DefaultConnectionLimit = 16;
ServiceClient _proxy = new ServiceClient();
//*** the wcf proxy service methods just sleep for 5 seconds.
var t1 = _wcfProxy.A();
var t2 = _wcfProxy.A();
var t3 = _wcfProxy.A();
var t4 = _wcfProxy.A();
await Task.WhenAll(t1,t2,t3,t4);
}
当我点击我的按钮时,我希望我的标签文本被设置5 seconds
(因为我的 WCF 方法调用只是休眠了 5 秒)。嗯,它正在采取10 seconds
。现在,当我只进行三个服务调用而不是四个服务调用时,标签设置为5 seconds
.
当我在执行所有四个调用时查看性能监视器中的调用计数时,我只看到 3 个进来,然后其他 1 个在前三个完成后进来。