netcore 同步方法里调异步,异步方法里调用同步,不死锁写法

 

/// <summary>
/// 同步方法里调用异步1
/// </summary>

static void SyncMethod()
{
//同步方法中调用异步方法(第一种写法)
AsyncMethod(参数1, 参数2).ConfigureAwait(false).GetAwaiter().GetResult();

//同步方法中调用异步方法2(第二种写法)

AsyncHelper.RunSync(async () =>
{
await loginAppService.AddLoginDetail(autoInfo);
});

//同步方法中调用异步方法3(第三种写法)静默写法,不等待结果

_ = Task.Run(async() =>
{
await ApiUtil.DistributeApi(list);
});

}

//同步方法中调用异步方法3(第三种写法)

public async Task MyAsyncMethod()
{
await Task.Run(() =>
{
// 同步逻辑
});
}

static async Task AsyncMethod()
{
// 异步方法中调用同步方法
await Task.Run(() => AnotherSyncMethod());
}

 


 
posted @ 2023-11-23 16:56  爱吃糖的宝宝  阅读(284)  评论(0)    收藏  举报