Net, прекъсването на потока

Понякога е полезно да се пречи на движението нормално за сключването му. Например, може да е необходимо дебъгер да прекъсне потока извън контрол. След прекъсване потока е отстранен от системата и не може да се стартира отново. Прекъсване метод () се използва за прекъсване на потока обикновено сключването му. По-долу е най-простата форма на този метод:

Прекъсване () метод създава необходимите условия за генериране ThreadAbortException изключения в конеца, за които е наречен. Това изключване води до прекъсване на потока и могат да бъдат уловени в код-програма, но в този случай тя се генерира автоматично още веднъж, за да спре потока. Прекъсване () метод не винаги е в състояние незабавно да спре потока, така че ако искате да спрете потока преди да продължите програмата след метода Прекратяване () трябва незабавно да се обадите на присъединяване () метод.

В допълнение, в много редки случаи, Прекъсване () метод, не успя да спре потока. Това се случва, например, в случай, че най-накрая на код блок влиза безкраен цикъл. При прилагането на метода Прекъсни () след пример илюстрира програма за прекъсване на потока:

метод Прекъсване () не трябва да се използва като обикновен средства за прекъсване на потока, тъй като тя е предназначена за специални случаи. Обикновено потокът трябва да приключи по естествен начин, не е връщане към начина на извършване на ролята на входна точка в него.

В някои случаи е друга форма на полезен метод Прекъсни (), по-долу обща форма:

където stateInfo означава всяка информация, която искате да прехвърлите надолу по веригата, когато спре. Тази информация е достъпна чрез свойствата на класа ExceptionState ThreadAbortException изключенията. По същия начин, потокът може да премине завършване код.

Повикване ResetAbort () може да се провали, ако няма поток в подходящ режим сигурна анулиране прекъсването на преждевременно поток. Нека да променя горния пример: