Си диез / Говнокод #5501 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
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();
					}
				};
			};
		}
	}

Запостил: Говногость Говногость, (Updated )

Комментарии (18) RSS

  • ...
    TErrorShower.ShowOnceIfAgree("Неудаёться остановить " + threadName + " поток. Будут предприняты попытки внештатной остановки районной електроподстанции.");
    ...
    Ответить
    • "неудаёться остановить поток взяток. Будут предприняты попытки внештатной остановки"
      "поток взяток не удалость остановить принудительно.Предпринимаю попытку принудительной остановки через взятку"
      "поток взяток не удалость остановить принудительно.Увольняем и перенаправляем поток в свой карман"
      Ответить
  • "Внимание! Опасность! В глобальной японской системе управления железнодорожной транспортной системой неудаётся остановить поток. На всех поездах Японии автоматически будут предприняты меры по экстренной остановке состава."
    Ответить
  • Кстати, а почему бы и нет? Может мне в своих проектах заюзать? (с)
    Помоему удобная штука для отладки. 🙂 Этож надёжный контроль остановки потоков во время отладки.
    Где-то что-то не остановится - я буду знать. 🙂
    Ответить
    • Хотя пользовать код с ГК - это плохой знак (как чёрная кошка, перешедшая дорогу), но все же какие аргументы против?
      Код смешной, но более надёжного способа обнаружить и исправить зависшие потоки - нет.
      Ответить
        • Ну это ясно, но иногда не выспался, иногда пьяный, иногда сосед покопался (да мало ли что) и всё... Грамотность из подхода вся сразу уходит...
          Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8