Здравствуйте, у меня есть следующий тестовый код:
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(Work);
t.Start();
Thread.Sleep(1000);
t.Abort();
Thread.Sleep(1000);
t.Abort();
Thread.Sleep(1000);
t.Abort();
t.Join();
Console.WriteLine("End");
}
static void Work()
{
int i = 0;
while (i<10)
{
try
{
while(true);
}
catch(ThreadAbortException)
{
Thread.ResetAbort();
}
Console.WriteLine("I will come back!");
i++;
}
}
}
Каждый раз, когда происходит прерывание, Thread.ResetAbort () будет выполняться.Интересно, что делает этот ResetAbort.Потому что когда я его запустил, я увидел следующий вывод: я вернусь!Я вернусь!Я вернусь!И я не увидел вывод «Конец» - похоже, эта программа вообще не закончилась.Ты знаешь почему?Спасибо!