@teddds:
Ich denke ich hab' da was falsch verstanden. Ich dachte an Software-Module, du meinst vermutlich COM im Sinne von RS232 und Module im Sinn von Platinen/externe Geräte.
Wobei... in dem Fall wäre es vermutlich ideal, wenn die Threads, die über die serielle Schnittstelle mit den Modulen kommunizieren, selbst merken, wenn das Modul nichtmehr korrekt antwortet.
Dann kann sich entweder der Thread selbst beenden, oder irgend eine "Recovery-Prozedur" anstossen, in dem das COM Modul resettet wird oder etwas in der Art.
@Jochen Kalmbach:
Ich fände es auch besser, wenn es vielleicht eher so implementiert wäre, dass das Werfen einer ThreadAbortException nur von (wenigen) bestimmten Funktionen getriggert würde. Ähnlich wie es im C++ Threading Proposal vorgesehen ist.
Damit kann man dann denke ich auch in realen Programmen gut umgehen.
Vermutlich hast du Recht, und die Stellen wo in .NET eine ThreadAbortException geworfen werden kann, sind einfach zu viele. Und die Libraries einfach zu schlecht implementiert, dass man sich 100% darauf verlassen könnte, dass kein Mist passieren kann.