В асинхронном коде (в современном понимании этого термина), что в С++, что в C# не получится использовать классические примитивы синхронизации (мьютексы, семафоры и т.п.) по причине того, что код может произвольно менять исполняющую его нить. Надо использовать специальные примитивы. В .NET - это SemaphoreSlim, к примеру
(
Read more... )