异步等待死锁?

时间:2020-01-06 08:29:21

标签: c# entity-framework asynchronous async-await deadlock

我经常在我的C#代码中得到我认为的死锁,该死锁大量使用了async-await。我有时会在以下代码行中得到它:

await context.SaveChangesAsync();

线程只是无限期阻塞。

我没有在代码中的任何地方同步阻塞。我一直使用async-await到顶部,在这里我从同步的入口方法中初始化了一个新的后台线程:

var threads =
new ThreadStart[]
{
    async () => await Run(InitiationDelegate),
                    }.Select(ts =>
    new Thread(ts) { IsBackground = true }
);

foreach(var thread in threads)
{
    thread.Start();
}

“运行”具有以下签名:

async Task Run(Func<Task> action)

我不确定僵局可能从哪里来?

0 个答案:

没有答案
相关问题