Я регулярно получаю, как мне кажется, тупик в моем C# коде, который интенсивно использует asyn c -wait. Я иногда получаю это в этой строке кода:
await context.SaveChangesAsync();
Поток просто блокируется на неопределенный срок.
Я не блокирую синхронно где-либо в коде. Я использую asyn c -await до самого верха, где я инициализирую новый фоновый поток, например, из метода ввода, который является синхронным:
var threads =
new ThreadStart[]
{
async () => await Run(InitiationDelegate),
}.Select(ts =>
new Thread(ts) { IsBackground = true }
);
foreach(var thread in threads)
{
thread.Start();
}
, а Run имеет следующую подпись:
async Task Run(Func<Task> action)
Я не уверен, откуда могли появиться тупики?