Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
class TStopThreadWaiter
{
public static void Wait(Thread threadWaitededForStop)
{
var threadName = threadWaitededForStop.GetType().Name;
if (!threadWaitededForStop.Join(1000))
{
TErrorShower.ShowOnceIfAgree("Неудаёться остановить " + threadName + " поток. Будут предприняты попытки внештатной остановки.");
if (!threadWaitededForStop.Join(200))
threadWaitededForStop.Interrupt();
if (!threadWaitededForStop.Join(200))
{
TErrorShower.ShowOnceIfAgree(threadName + " поток не удалость остановить принудительно через Interrupt. Предпринимаю попытку принудительной остановки через Abort.");
threadWaitededForStop.Abort();
if (!threadWaitededForStop.Join(200))
{
TErrorShower.ShowOnceIfAgree(threadName + " поток не удалость остановить принудительно через Abort. Завершаем приложение.");
Application.Exit();
}
};
};
}
}
"неудаёться остановить поток взяток. Будут предприняты попытки внештатной остановки"
"поток взяток не удалость остановить принудительно.Предпринимаю попытку принудительной остановки через взятку"
"поток взяток не удалость остановить принудительно.Увольняем и перенаправляем поток в свой карман"
"Внимание! Опасность! В глобальной японской системе управления железнодорожной транспортной системой неудаётся остановить поток. На всех поездах Японии автоматически будут предприняты меры по экстренной остановке состава."
Кстати, а почему бы и нет? Может мне в своих проектах заюзать? (с)
Помоему удобная штука для отладки. 🙂 Этож надёжный контроль остановки потоков во время отладки.
Где-то что-то не остановится - я буду знать. 🙂
Хотя пользовать код с ГК - это плохой знак (как чёрная кошка, перешедшая дорогу), но все же какие аргументы против?
Код смешной, но более надёжного способа обнаружить и исправить зависшие потоки - нет.
> не удалость
какая ужасть!
лол
TErrorShower.ShowOnceIfAgree("Неудаёться остановить " + threadName + " поток. Будут предприняты попытки внештатной остановки районной електроподстанции.");
...
"поток взяток не удалость остановить принудительно.Предпринимаю попытку принудительной остановки через взятку"
"поток взяток не удалость остановить принудительно.Увольняем и перенаправляем поток в свой карман"
альзо, душ ошибок
альзо, стоп-шаг официант
Помоему удобная штука для отладки. 🙂 Этож надёжный контроль остановки потоков во время отладки.
Где-то что-то не остановится - я буду знать. 🙂
Код смешной, но более надёжного способа обнаружить и исправить зависшие потоки - нет.
🙂