[c#] Unterschied zwischen lock(this) und Monitor.Enter(this)

Passer

Erfahrenes Mitglied
Tagchen,

die Überschrift ist eigentlich selbsterklärend, aber trotzdem.

Worin besteht er Unterschied zwischen
lock(this)
{...}
und
Monitor.Enter(this);
...
Monitor.Exit(this);

MfG
Christoph
 
Es gibt keinen.... :D
Beides ist äquivalent. Wenn der lock-Block betreten wird, entspricht das Monitor.Enter. Und wenn er verlassen wird Monitor.Exit.
 
Zuletzt bearbeitet:
Ahh danke, so hatte ichs auch verstanden.

Der einzige Unterschied wäre imho, dass man bspw bei der Benutzung von lock nicht so achtsam sein muss, dass der block auch wie geplant verlassen wird.

Wenn man das aber weiss, ist dieser Vorteil alledings auch schon wieder hinfällig, da man dann ja speziell drauf achtet ;)

Danke auf jeden Fall.

Gibt es denn bei dem Monitorkonzept irgendwelche Unterschiede zum locken?

MfG
Christoph
 
Also das Monitorkonzept ist nur nützlich wenn die Synchronisation von unterschiedlichen Methoden bestimmt wird. Also wenn die Objekte von bestimmten Methoden gesperrt werden sollen. ZB bei einer asynchronen Ereignisbehandlung.

Schau Dir doch mal mein [thread=260455]Multi-Threading - Teil1: Einführung - Tutorial[/thread] an.
Ganz am Schluss findest einen Link zu spezialisierten Techniken...
Weiteres in den folgenden Links:
  • [thread=210935]Thread Hilfe, wie beenden? - Thread[/thread]
  • [post=1337449]AW: Probleme beim neuzeichnen von pictureBox - Post[/post] (Beispielprogramm)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück