2016-04-28 7 views
0

ich eine Sperre Anweisung in meinem Code festlegen möchten ..ASP - Wie setze ich [lock statement] in meinem Code?

Ich habe dies getan:

Set -> private static Object ThisLock = new Object(); -> als global Variable.

In meinem Code:

lock (thisLock) 
{ 
    myCode HERE... 
} 

Ich habe ein Button-Klick-Ereignis für das Formular zu speichern. Sollte ich dies verwenden, kommt es nicht zu Konflikten mit IDs. Nur mein Code, werde ich die Arbeit machen? Soll ich einen anderen vor oder nach dem Code schreiben?

Vielen Dank, vorher !!!

+1

Nein, das genau das, was Sie brauchen. – Christos

+0

Ich habe ein Button Click Event zum Speichern des Formulars. Sollte ich dies verwenden, kommt es nicht zu Konflikten mit IDs. – Gohyu

+0

Nur mein Code, werde ich die Arbeit machen? – Gohyu

Antwort

1

Der Code ist in Ordnung.

bleiben: Die Sperre Schlüsselwort wird sichergestellt, dass ein Thread keinen kritischen Codeabschnitt eintritt, während ein anderer Thread im kritischen Abschnitt ist. Wenn ein anderer Thread versucht, einen gesperrten Code einzugeben, wird er warten, blockieren, bis das Objekt freigegeben wird.

Hier ein einfaches Beispiel aus MSDN:

class Account 
{ 
    decimal balance; 
    private Object thisLock = new Object(); 

    public void Withdraw(decimal amount) 
    { 
     lock (thisLock) 
     { 
      if (amount > balance) 
      { 
       throw new Exception("Insufficient funds"); 
      } 
      balance -= amount; 
     } 
    } 
} 
+0

Ja, ich sah dieses Beispiel, aber mein Code ist anders :) Ich habe ein ** Button Click Event ** zum Speichern des Formulars. Sollte ich dies verwenden, kommt es nicht zu Konflikten mit IDs. – Gohyu

+0

Nur mein Code, werde ich die Arbeit machen? – Gohyu