【发布时间】:2021-06-20 12:34:49
【问题描述】:
我是基于任务的编程的新手。我必须异步调用 WCF 服务并启动一个任务来等待它,因为我不想在相同的方法中等待,所以我编写了类似这样的代码
void MyMainMethod()
{
for(int j=0;j<10; j++)
{
int I = 100;
Task<response> res = _client.GetValueAsnc(request);
//Do some work
Task.Run(()=> WaitForResponse(res , I));
}
}
Async Task WaitForResponse(Task<response> res , int I)
{
await res;
if(res.responsecode == "Success")
{
//udatateDB...
}
else
{
//update DB with Error Message..
}
}
这样,如果我在一个循环中调用此服务 10 次,它将启动 10 个任务并给我响应,而不是在 MyMainMethod() 中等待响应,我将为每个请求启动一个单独的任务。
如果这是正确的方法,或者我在这里犯了一些重大错误,并且如果我需要更多细节来解释这个问题,请告诉我。
提前致谢。
【问题讨论】:
-
Duplex Services 怎么样?
标签: c# wcf async-await task