Robię niektóre wielowątkowość i używam AutoResetEvents, a ManualResetEvents kontrolują moją główną pętlę. Kiedy "odślepiam" nici, które muszę również wyrzucić, to jest jasne.Jak prawidłowo pozbyć się waithandle
Ale widziałem różne sposoby, jak pozbyć Waithandles, i nie jestem pewien, który z nich jest poprawna:
Wersja 1
if (disposing)
{
this.threadExitEvent.SafeWaitHandle.Dispose();
this.threadExitEvent.Close();
this.threadExitEvent = null;
....
}
Wersja 2
if (disposing)
{
this.threadExitEvent.Close();
this.threadExitEvent = null;
....
}
Wersja 3
if (disposing)
{
this.threadExitEvent.Close();
....
}
+ 1 - Całkowicie przeoczyłem fakt, że Dispose to jawna implementacja interfejsu (dzięki, Adam!) - z pewnością jest to droga do zrobienia. –
Brzmi rozsądnie. Już zgadłem, że wersja 2 jest "najczystsza". Dzięki – TomTom