Я нашел в сети некоторый код, который останавливает поток через исключение после некоторого периода ожидания.
def raise_exception(self):
thread_id = self.get_id()
res = ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id,
ctypes.py_object(SystemExit))
if res > 1:
ctypes.pythonapi.PyThreadState_SetAsyncExc(thread_id, 0)
print('Exception raise failure')
Исключение вызывается через некоторое время:
t1 = thread_with_exception('Thread 1')
t1.start()
time.sleep(1/1000)
t1.raise_exception()
t1.join()
Я хотел бы вызвать исключение, которое бы указывало, сколько раз происходит процесс. Такие как:
t1 = thread_with_exception('Thread 1')
t1.start()
if t1.count >= 3:
t1.raise_exception()
t1.join()
Это, однако, не вызывает исключение, когда t1.count> = 3.
Может ли исключение вызываться таким образом?