-1

サイズ変更された画像で Web アプリケーションを提供するための httpHandler を開発しています。リクエストされた画像と指定されたシックスが存在しない場合は、その画像を作成します。

問題は、2 つ (またはそれ以上) の要求が同時にサーバーに到達し、作成する必要があるイメージを要求する場合です。どうすればこれを防ぐことができますか? 最初のリクエストがイメージを作成するのにかかる時間内にコードをロックするにはどうすればよいですか? イメージが作成されると、2 番目 (およびそれ以降) の要求は、作成されたイメージをファイルシステムから取得します。

ありがとう!

//ニッケ

4

1 に答える 1

0

C# の単純なロック メカニズムを使用するだけです。すべてのスレッドで共有される静的オブジェクトを作成し (おそらくシングルトンを使用してこの操作をラップします)、二重チェックロックを使用します。

if (!pictureExists)
{
    lock (_syncRoot) // This is the shared object to lock by
    {
        if (!pictureExists) // double checked
        {
            // create it
        }
    }
}
于 2013-05-20T17:51:15.213 に答える