首页 新闻 会员 周边 捐助

请问C#中如何判断无返回值的await 方法是否执行成功?

0
悬赏园豆:10 [已解决问题] 解决于 2016-04-10 19:07

我在调用.net自带的方法发送websocket消息,代码如下:

 

await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);

 

这个方法签名是返回一个Task,

可是写成 Task t=await socket.SendAsync(...);会提示无法将void转换成Task;

 

我想通过await socket.SendAsync(...).Exception==null来判断是否发送成功,

可是if(await socket.SendAsync(...).Exception==null)会提示无法等待bool.

 

如果是你,你会怎么判断呢?谢谢!

 

 


 


        
hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2016-04-07 18:14
< >
分享
最佳答案
0

加个括号就可以了

if((await socket.SendAsync(...)).Exception==null)
收获园豆:10
dudu | 高人七级 |园豆:30948 | 2016-04-07 20:11
Task t = await socket.SendAsync(...)

改为

bool result = await socket.SendAsync(...)
dudu | 园豆:30948 (高人七级) | 2016-04-07 20:12
其他回答(1)
0

Task tk=socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);

你await了后不就执行完了。

Daniel Cai | 园豆:10424 (专家六级) | 2016-04-07 18:20

会提示无法将void转换成Task;

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2016-04-07 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册