Ich habe in letzter Zeit viel mit C # gearbeitet und festgestellt, dass der meiste Code, der Ereignisse in meinem Unternehmenscode auslöst, so gemacht wird:
%Vor%Ich verstehe wirklich nicht warum, stattdessen können Sie das nicht tun:
%Vor%BEARBEITEN:
Etwas zum Nachdenken, ich habe versucht, ein paar Tests zu diesem Thema:
%Vor%Die unsichere Version bringt das Programm zum Absturz.
Die erste Version versucht, das Ereignis threadsicher zu machen .
Siehe C # -Ereignisse und Thread-Sicherheit
Tatsächlich macht es, wie in der Diskussion gesagt, den Thread nicht sicher. Daher würde ich stattdessen die zweite Version verwenden, die kürzer ist.
EDIT: Event-Thread-Sicherheit ist wirklich schwer zu implementieren. Sehen Sie sich an, wie es aussehen könnte ... Wenn Sie Wenn Sie nicht wirklich mit mehreren Threads arbeiten, die Ereignisse registrieren / aufheben, sollten Sie keine Zeit mit Thread-Sicherheit verschwenden.
Die zweite Version ist nicht Thread-sicher.
%Vor% Wenn der letzte Handler sich nach dem if (Initialized != null)
abmeldet, endet die Ausnahme mit null ref.