【发布时间】:2015-07-21 21:38:07
【问题描述】:
我们有一个带有方法及其异步的 WCF 服务,我们想将它们称为异步。
下面代码挂了:
private void btnRunTest_Click(object sender, EventArgs e)
{
Task<List<DtoEmployee>> resultOfLoadEmployees = LoadEmployeesAsync(predicateEmployee1); // hangs up on this line
resultOfLoadEmployees.Wait();
var employeeList = resultOfLoadEmployees.Result;
foreach (var item in employeeList)
{
//Do Something
}
}
private async Task<List<DtoEmployee>> LoadEmployeesAsync(int employeeNumber)
{
return await _serviceClient.EmployeeGetListAsync(employeeNumber);
}
但下面的代码可以正常运行:
private async Task<List<DtoEmployee>> LoadEmployeesAsync(int employeeNumber)
{
return await _serviceClient.EmployeeGetListAsync(employeeNumber);
}
private async void btnRunTest_Click(object sender, EventArgs e)
{
List<DtoEmployee> employeeList = await LoadEmployeesAsync(employeeNumber);
foreach (var item in employeeList)
{
//Do Something
}
}
调用异步WCF方法有什么区别,哪一个是正确的?
【问题讨论】:
标签: c# asynchronous async-await