【发布时间】:2019-01-27 10:43:00
【问题描述】:
我有一个发布者、调度者和订阅者。
发布者通过调度程序向订阅者发布事件。
subscriber 是一个嵌入在 S.exe 中的 com 对象,当特定事件来自 publisher.exe 时,可以从 dispatcher.exe 回调。
我预计订阅者内部的任何异常都会终止 S.exe。
我做了调查:
任务,与 配置可以终止主进程。相关文章, https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.taskscheduler.unobservedtaskexception?view=netframework-4.7.2
在我的代码中新建一个线程,无需任何具体配置即可 此外,线程内任何未处理的异常都可能使主线程崩溃 过程。相关文章, https://docs.microsoft.com/en-us/dotnet/standard/threading/exceptions-in-managed-threads
一个线程的两个属性:{isbackground, isThreadPoolThread}。
- 任务是{true, true}
- 人工线程是{true, false},
- 订阅者回调线程为 {true, false}。
有没有其他配置,比如,可以设置控制是否让主进程崩溃?
【问题讨论】:
-
您必须以编程方式执行此操作,以便处理其他基本细节。超级傻瓜重要的是,您留下某种面包屑,以便用户可以发现程序终止的原因。您没有太多选择,因为您无法控制用户界面,System.Diagnostics.EventLog 就是您真正拥有的一切。然后 Environment.FailFast().
标签: c# multithreading com background-thread