Я видел несколько примеров, которые имеют процедуру потока, которая выглядит следующим образом.
private void ThreadProc()
{
while (serviceStarted)
{
// do some work
Thread.Sleep(new TimeSpan(0, 0, 5));
}
Thread.CurrentThread.Abort();
}
Действительно ли нужен Abort()
в конце?
Существует ряд аргументов против вызова Abort()
- Как только процедура выйдет - ожидается, что она уже очистится после себя.
- Вызов
Abort()
выдает исключение, которое, как правило, более ресурсоемкое, чем просто выход из процедуры.
Я хотел бы прочитать объяснение, почему это или не является хорошей практикой.