0

asp.netでロックを使用して、複数のユーザーがボタンをクリックするのを防ぐにはどうすればよいですか。つまり、一度に1人のユーザーだけがボタンをクリックする必要があり、複数のユーザーがボタンをクリックしないようにする必要があります。どうすればロック、勉強するための参照を使用できますか。

4

1 に答える 1

0

別のユーザーが「同じ」ページの「同じ」ボタンをクリックするのを実際に防ぐことはできません。ただし、同じコードブロックで同時に複数のリクエストがアクティブになるのを防ぐことができます。

private static object PadLock = new object();
protected void Button1_Click(object sender, EventArgs e)
{
    lock (PadLock)
    {
        // do work here. only one thread can run code in this block at any one time
        // start by verifying if the work was already done. if not do the work
    }
} 

これにより、のコードへのアクセスがシリアル化されますが、Button1_Click絶対に必要でない場合は、tiを使用しないことをお勧めします。前のlockロック所有者がロックを解放するまで、ステートメントは(場合によっては永久に)ブロックされます。

于 2012-07-06T06:33:01.857 に答える