"ThreadAbortException" - vs-anmutige Ereignis-handle Ausfahrt in C#

Beim Abbruch der Ausführung eines Threads, ich bin immer zweifelt, zwischen einer anmutigen Ausfahrt mit einem event-handler wie diese:

int result = WaitHandle.WaitAny(handles);
if (result = WAIT_FINALIZE)
  FinalizeAndExit();

und mit dem event zu signalisieren, den thread muss es beenden

oder einfach nur die Handhabung der "ThreadAbortException" -, um abschließend zu dem thread...

try
{
  //Main execution
}
catch(ThreadAbortException e)
{
  //FinalizeAndExit();
}
finally
{
}

Normalerweise bin ich geneigt zu verwenden, die "ThreadAbortException" - Ansatz, da es behandelt werden kann, aber es ist re-raiste am Ende des catch-Blocks, und es vermeidet auch den thread am Leben gehalten, durch "verräterische" Methoden, aber ich habe gesehen, beide Ansätze.

Was ist Ihre Meinung? Gibt es eine situation, wo es ist am besten, um eine über die andere, oder ist es am besten benutzen Sie immer den Ansatz x?

Schreibe einen Kommentar