複数のスレッドから頻繁に呼び出されるメソッドがあります。を使用してディスクに書き込む必要がありawait FileIO.WriteTextAsync
ます。これは、単一のスレッドから呼び出された場合は正常に機能しますが、複数のスレッドでこれを開始すると、次のエラーが発生します。
The process cannot access the file because it is being used by another process.
エラーの意味はわかりますが、回避方法がわかりません。通常、一度にlock(object)
1 つのスレッドのみがファイルにアクセスするようにステートメントを作成します。ただし、これは非同期メソッドであるため、ステートメントawait
の本文で演算子を使用することはできません。lock(object)
このシナリオを処理する方法についてアドバイスしてください。