c# - Environment.Exit(int) 会用运行非托管代码的踏板杀死我的应用程序吗?
问题描述
我有一个 Windows 服务,它DllImport
在不同的线程中运行非托管代码(使用)。
有时,非托管代码“挂起”。想想while (true) ;
。发生这种情况时,我需要终止整个进程(它会自动启动另一个进程,因为它是 Windows 服务)。
是否Environment.Exit(int)
足够?或者我需要例如Environment.FailFast(string)
?
编辑:我无法“测试”这个。冻结是随机发生的。
解决方案
是的。Environment.Exit将杀死当前进程中运行的所有线程,包括主线程(和进程本身)。
Environment.FailFast会将事件记录到应用程序日志中,然后终止进程和当前进程中的所有线程。
推荐阅读
- sql - postgreSQL 为不存在的值添加条件
- testing - 对于具有 compileOnly 依赖项的单元测试,我如何避免在运行时重新声明可用性的依赖项?
- spring - 如何在 Spring Boot rest api 的 POST 方法中为现有玩家和游戏在不同时间创建新分数
- sql - SQL 按日期分组,具有多个相同的结果
- vb.net - [VB.NET]Upnp/udp打孔聊天程序tcp/udp sockets
- python - 对部署在 GCP 上的模型进行 API 调用
- javascript - 在空格键上播放的音频点击
- css - 在第一行有行跨度的情况下,在表格的第一行设置 css 样式
- terraform - 通过 REST API 公开 Terraform
- python - 不再支持将“将列表喜欢传递给 .loc 或 [] 并带有任何缺失标签的数据框,我该如何解决?