async修飾子/await演算子(VBではAsync修飾子/Await演算子、以降では省略)を使った非同期プログラミングでは、スレッド間の排他ロックにlockステートメント(VBではSyncLockステートメント)が使えない。代わりにSemaphoreSlimクラス(System.Threading名前空間)を使えば可能なのだが、コードの記述が面倒である。そこで本稿では、AsyncLockクラスを使って簡潔に記述する方法を説明する。 SemaphoreSlimクラスによる排他ロック SemaphoreSlimクラスを使ってスレッド間の排他ロックを行うコードは、次のようなものだ。lockステートメントが使えない理由も含めて、詳細は「非同期:awaitを含むコードをロックするには?(SemaphoreSlim編)[C#、VB]」を参照していただきたい。 static System.Threa