私のウェブサイトでは、コントローラを使用して画像のサムネイルを生成しています。私のコードは次のようになります:
var filePath = getThumbnailPath();
if (!File.Exists(filePath)
{
... create thumbnail
}
return new Filestream(...)
問題は、2 人のユーザーが同じサムネイルを要求し、これが作成されていない場合、作成時に例外が発生することです。オーバーヘッドをあまり導入せずに、ファイル名オブジェクトのロックを効率的に使用するにはどうすればよいですか?
Aristos のコメントの後にリファクタリングされたコード:
Mutex m = new Mutex(false, originalImagePath);
m.WaitOne();
try
{
if (!File.Exists(originalImagePath))
{
... create thumbnail
}
}
finally
{
m.ReleaseMutex();
}