タグ

あとで読むとwindowsとlockに関するItisangoのブックマーク (2)

  • loaderLock MDA - .NET Framework

    loaderLock マネージド デバッグ アシスタント (MDA) は、Microsoft Windows オペレーティング システムのローダー ロックを保持しているスレッド上でマネージド コードを実行する試行を検出します。 このような実行は、デッドロックの原因になる可能性があり、オペレーティング システムのローダーが初期化する前に DLL が使用される可能性があるため、不適切です。 現象 オペレーティング システムのローダー ロック内でコードを実行する場合に発生する最も一般的なエラーは、ローダー ロックを必要とする他の Win32 関数を呼び出そうとしたときにスレッドがデッドロックする問題です。 このような関数の例として、LoadLibrary、GetProcAddress、FreeLibrary、GetModuleHandle があります。 アプリケーションはこれらの関数を直接呼び出

    loaderLock MDA - .NET Framework
    Itisango
    Itisango 2020/10/27
    「loaderLock マネージド デバッグ アシスタント (MDA) は、Microsoft Windows オペレーティング システムのローダー ロックを保持しているスレッド上でマネージド コードを実行する試行を検出します」 #dotNet
  • 非同期:awaitを含むコードをロックするには?(AsyncLock編)[C#、VB]

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

    非同期:awaitを含むコードをロックするには?(AsyncLock編)[C#、VB]
  • 1