【发布时间】:2011-12-04 16:27:38
【问题描述】:
我创建了一个 C# 控制台应用程序,通过订阅 Console.CancelKeyPress 事件来处理 Ctrl-C。当我执行(调试版本)应用程序时,进程中已经创建了 14 个线程。当我按下 Ctrl-C 时,创建了一个新的第 15 个线程并调用了我的处理程序。我使用 sysinternals 的进程资源管理器来查看进程的状态。
我很想知道 Ctrl-C 消息如何传递给进程以及如何创建附加线程的内部机制?我想,即使我不订阅事件,它仍然会创建一个额外的线程并退出进程。处理 Ctrl-C 的默认机制是如何为应用程序设置的。
我是一名 .net 开发人员,但想了解 Windows 操作系统的幕后工作原理。上面的问题只是出于学习windows操作系统的好奇。
【问题讨论】:
标签: windows console-application signals ctrl