Heute gelernt: Null - Race-Conditions bei Delegates

20. März 2004 10:03

Dinge sind offensichtlicher immer schwieriger als man meinen möchte. Seit heute gilt das auch für den Aufruf von Delegates :-) . Der sieht normalerweise so aus:

if( Click != null) Click( arg1, arg2);

So ruft man das vermutlich normalerweise auf, aber diese Art des Aufrufs erzeugt eine Race-Condition. Ein anderer Thread kann den Handler zwischen dem 'if' und dem tatsächlich Aufruf entfernen. Was man tun muss ist, man muss eine Kopie anlegen und diese verwenden:

ClickHandler handler = Click;

if( handler != null) hander( arg1, arg2);

Vielen Dank an Eric Gunnerson für diesen Hinweis.

Kommentare sind geschlossen

Kalender

<<  Mai 2012  >>
MoDiMiDoFrSaSo
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar