C# 有关WCF和异步的信息
我正忙于创建一个WCF Web服务,它需要一个异步调用。到目前为止,我已经做到了:C# 有关WCF和异步的信息,c#,wcf,asynchronous,async-await,C#,Wcf,Asynchronous,Async Await,我正忙于创建一个WCF Web服务,它需要一个异步调用。到目前为止,我已经做到了: public async Task<bool> sendData(Data data) { bool sent = await Task<bool>.Factory.StartNew(() => { return someNameSpace.ReceiveData(data); }); return sent; } 公共异步任务sendDa
public async Task<bool> sendData(Data data) {
bool sent = await Task<bool>.Factory.StartNew(() => {
return someNameSpace.ReceiveData(data);
});
return sent;
}
公共异步任务sendData(数据){
bool sent=wait Task.Factory.StartNew(()=>{
返回someNameSpace.ReceiveData(数据);
});
返回发送;
}
所以我的问题是,对dll的调用是否也需要标记为异步
即在dll中
public async Task<bool> ReceiveData(Data data) {
// some async code
// some code here
}
公共异步任务接收数据(数据){
//一些异步代码
//这里有一些代码
}
您可以找到我的。我也有一个专门处理这个问题的帖子
一些要点:
- 除非明确希望在后台线程上运行某些代码,否则不要使用
(或StartNew
)Task.Run
- 您可以等待任何
,无论它来自何处。返回任务
任务的方法可以是
异步的,也可以不是
——它只在该方法中起作用异步的
ReceiveData
是其中之一(它们看起来与SendData
相同):
你可以找到我的。我也有一个专门处理这个问题的帖子
一些要点:
- 除非明确希望在后台线程上运行某些代码,否则不要使用
(或StartNew
)Task.Run
- 您可以等待任何
,无论它来自何处。返回任务
任务的方法可以是
异步的,也可以不是
——它只在该方法中起作用异步的
ReceiveData
是其中之一(它们看起来与SendData
相同):
在使用async/await时,您可能会发现这对于WCF中的分布式事务也很有用:在使用async/await时,您可能会发现这对于WCF中的分布式事务也很有用:
public async Task<bool> ReceiveData(Data data);
public Task<bool> ReceiveData(Data data);
public async Task<bool> SendData(Data data)
{
bool sent = await someNameSpace.ReceiveData(data);
... // do other stuff
return sent;
}