Joh*_*han 0 c# wcf asynchronous async-await
我正忙着创建一个需要ASYNC调用的WCF Web服务.到目前为止我做到了这一点:
public async Task<bool> sendData(Data data) {
bool sent = await Task<bool>.Factory.StartNew(() => {
return someNameSpace.ReceiveData(data);
});
return sent;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,对dll的调用是否也需要标记为异步?
即.在dll内
public async Task<bool> ReceiveData(Data data) {
// some async code
// some code here
}
Run Code Online (Sandbox Code Playgroud)
您可能会发现我的async/ await介绍很有帮助.我还有一篇专门处理asyncWCF的帖子.
一些一般观点:
StartNew(或Task.Run).Task无论它来自哪里,你都可以等待.返回a的方法Task可能是也可能不是async- 它只会在该方法中产生差异.所以,如果你ReceiveData是其中任何一个(它们看起来一样SendData):
public async Task<bool> ReceiveData(Data data);
public Task<bool> ReceiveData(Data data);
Run Code Online (Sandbox Code Playgroud)
然后你就await可以了SendData:
public async Task<bool> SendData(Data data)
{
bool sent = await someNameSpace.ReceiveData(data);
... // do other stuff
return sent;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |