偶发性错误,线程不安全处理方法 返回
已经参考该教程处理办法:https://www.donet5.com/Home/Doc?typeId=1224
想咨询一下大神
异步查询是否必须将方法定义为async Task
async Task的方法是否必须使用await才能保证线程安全
使用.Result方法等待以及.Wait()也可以做到等待,是否效果与await效果一致
热忱回答(3)
-
omgcwz VIP01个月前
层层调用的方法是否都需要将方法定义为async Task
还是只是调用数据库的那一层就行
有些情况不希望将方法定义为异步的但请求存储或查询的方法是异步的
0 回复 -
fate sta VIP01个月前
.Result方法等待以及.Wait() 这种是同步
和await 效果完全不一样 ,虽然调试看着差不多 差距很大
0 回复 -
omgcwz VIP01个月前
@fate sta:
假设我有个这样的方法
public async Task<SysConfig> GetByConfigKey(string category, string configKey)
{
var key = SystemConst.CACHE_DEV_CONFIG + category;//系统配置key
var config = await GetFirstAsync(it => it.Category == category && it.ConfigKey == configKey);//获取系统配置
return config;
}
每个调用GetByConfigKey的方法都需要使用async Task定义方法并且使用await 进行同步等等,若将调用方法定义为非async Task就会导致线程异常
有什么方法可以停止持续的异步,又能保证线程同步安全
0 回复