My Python Win32 code creates a worker thread, which sleeps, and has a signal handler in the main thread to catch Ctrl-C. However, the Ctrl-C response happens only after the worker thread wakes up.
Relevant code:
def main():
...
worker_thread = threading.Thread(target=worker_thread, daemon=True)
worker_thread.start()
win32gui.PumpMessages()
def worker_thread():
while True:
...do work...
sec = ...
win32api.Sleep(1000 * sec)
# same results
# time.sleep(sec)
win32gui.InvalidateRect(hWindow, rect, True)
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal_handler)
main()