Frage zum sauberen Beenden eines Threads in .NET

Ich verstehe, dass Thread.Abort () aufgrund der Vielzahl der Artikel, die ich zu diesem Thema gelesen habe, böse ist. Daher bin ich gerade dabei, meine Abbrüche zu entfernen, um sie auf eine sauberere Art und Weise zu ersetzen. und nach dem Vergleich von Benutzerstrategien von Leuten hier auf Stapelüberlauf und dann nach dem Lesen von" Gewusst wie: Erstellen und Beenden von Threads (C # -Programmierhandbuch)" von MSDN beide, die einen Ansatz sehr ähnlich angeben - das ist ein @ zu verwendvolatile bool Ansatz Checking-Strategie, das ist schön, aber ich habe noch ein paar Fragen ....

Was mir hier sofort auffällt, ist was, wenn Sie keinen einfachen Worker-Prozess haben, der nur eine Schleife von Crunching-Code ausführt? Zum Beispiel ist mein Prozess für mich ein Prozess zum Hochladen von Hintergrunddateien. Tatsächlich durchlaufe ich jede Datei, das ist also etwas, und ich kann sicher mein @ hinzufügewhile (!_shouldStop) oben, das mich bei jeder Schleifeniteration abdeckt, aber ich habe viel mehr Geschäftsprozesse, die auftreten, bevor die nächste Schleifeniteration erreicht wird. Ich möchte, dass diese Abbruchprozedur schnell ausgeführt wird. Sagen Sie mir nicht, dass ich diese while-Schleifen alle 4-5 Zeilen in meiner gesamten Worker-Funktion streuen muss?!

Ich hoffe wirklich, dass es einen besseren Weg gibt. Könnte mich bitte jemand beraten, ob dies tatsächlich der richtige [und einzige?] Ansatz ist oder Strategien, die sie in der Vergangenheit angewendet haben, um das zu erreichen, wonach ich strebe.

Danke Gang.

Weitere Lektüre:Alle diese SO Antworten Es wird angenommen, dass der Worker-Thread eine Schleife ausführt. Das passt nicht gut zu mir. Was ist, wenn es sich um eine lineare, aber zeitnahe Hintergrundoperation handelt?