Wie Jon bereits gesagt hat, können Sie keinen Thread sagen: "Bitte hören Sie jetzt auf" und erwarten, dass der Thread gehorcht. Thread.Abort wird nicht sagen, dass es aufhören soll, wird es einfach "trennen". :)
Was ich in der Vergangenheit getan habe, war eine Reihe von "if (wehavetostop)" innerhalb der Thread-Code und wenn der Benutzer eine "Abbrechen" gedrückt legte ich wehavetostop == wahr.
Es ist nicht zu elegant und in einigen Fällen kann es schwierig sein, die "if" -Prüfungen zu setzen, besonders wenn Ihr Thread einen "langen" Vorgang ausführt, den Sie nicht teilen können.
Wenn Sie versuchen, eine Netzwerkverbindung herzustellen (und es dauert Zeit) und Sie wirklich denken, dass eine "abnormale" Beendigung des Threads keinen korrumpierenden Zustand verursachen würde, können Sie es verwenden, aber denken Sie daran, dass Sie nicht können vertraue dem Zustand der Dinge, die an diesem Thread beteiligt waren.