Windows在控制台应用程序中支持SIGINT以响应Ctrl-C。这意味着Windows具有从远程线程中断正在运行的线程的功能(甚至进程!)并调用信号处理程序。
这究竟是如何在NT Native API级别上运行的?这个线程中断API可以在用户空间中用于其他目的吗?
答案 0 :(得分:2)
根据http://msdn.microsoft.com/en-us/library/xdkz3x12(v=vs.71).aspx,SIGINT会导致创建一个新线程来处理中断。
所以看起来它并没有真正“中断”任何正在运行的线程。您可以通过简单地生成自己的线程来实现相同的效果。
这里有更多评论:
答案 1 :(得分:0)
您可以随时暂停目标线程,修复上下文以执行您的过程然后恢复它。它很丑,但是如果你想中断一个线程来执行一个程序,那就可以了。
控制台和CTRL + C处理程序是Win32构造,并且在本机API级别确实不存在。