300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > async await 同步方法调用异步方法死锁

async await 同步方法调用异步方法死锁

时间:2022-06-06 00:20:24

相关推荐

async await 同步方法调用异步方法死锁

同步方法调用异步方法

.GetAwaiter().GetResult()

计算函数超时,异步方法所有的回调操作都会期望返回到主线程。

所以会导致各种线程死锁。异步方法中使用ConfigureAwait(false)解决

1 public void Check(){

//todo 2 //验证userid和token是否匹配 3 var tUserId = UserIdAndTokenValidationAsync(userId, at.UserId); 4 //验证参数签名是否正确 5 Task<bool> tvalid = CheckSignatureAsync(paramList, signature, at.Token); 6 //验证请求时间 7 Task<bool> tTicks = TicksValidationAsync(signature, timestamp); 8 9 bool userIdRes = tUserId.GetAwaiter().GetResult();10 bool validRes = tvalid.GetAwaiter().GetResult();11 bool ticksRes = tTicks.GetAwaiter().GetResult();12 }

public async Task<bool> UserIdAndTokenValidationAsync(int requsetUserId, int tokenUserId){bool res = await Task.Factory.StartNew(() =>{return UserIdAndTokenValidation(requsetUserId, tokenUserId);}).ConfigureAwait(false);return res;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。