Question

J'ai fil des thats l'analyse d'un fichier et faire des appels transactionnels à la base de données, chaque transaction a une entrée d'audit dans le cadre de sa transaction. Y at-il énormément de mal à appeler Thread.Abort () pour arrêter le traitement du dossier? Plutôt que de dispersion des taches de sécurité laid partout?

Le dossier sera fermé après l'appel Abandonner.

Était-ce utile?

La solution

Le problème évident serait le risque d'abandonner une transaction, ce qui pourrait provoquer le blocage pour une durée indéterminée (ou jusqu'à ce délai d'attente). Mais vous pouvez laisser toutes sortes off désordre -. Serrures irrécupérables de Monitor, sémaphores, etc, les fuites de mémoire, etc

En bref: essayez aussi dur que possible pour éviter d'avoir à abandonner un fil à moins que vous savez exactement ce qu'il fait à l'époque. Et la seule façon que vous pouvez savoir ce qu'il fait est si elle est déjà dans un connu « endroit sûr » (pour utiliser votre terme) - donc vous pourriez tout aussi bien jeter une exception ou quelque chose et de le laisser se relever d'une manière gérée .

Autres conseils

Les meilleures pratiques: seulement abandonner un fil lorsque vous démolissent le processus.

Essayez Thread.Interrupt () pour forcer le fil à sortir de son état d'attente.

la page MSDN

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top