如果另一个线程导致进程在windows上崩溃,我该如何延迟销毁进程
How do I Delay destruction of my process if another thread causes it to crash on windows?
我正在编写一个DLL,该DLL由一个封闭源代码的专有程序加载,我无法控制。我还加载了一个同样晦涩难懂的专有DLL。由于有时我必须将通过DLL接口获得的命令中继到我以非常低的延迟加载的DLL,我在初始化DLL时启动一个单独的分离线程,并通过无锁队列向其发送未格式化的调试信息。因此,调试输出的格式化和日志文件的写入都是异步完成的。问题是进程无意中崩溃了(我几乎可以肯定这不是我的错),我无法知道最后的调试信息是什么,因为我分离的线程在写入磁盘之前就被windows杀死了。
所以我的问题是:
- 如果专有程序崩溃,使我分离的线程在销毁前运行的时间更长,我可以以任何方式延迟销毁吗
- 进程间通信会通过将我分离的线程移动到另一个windows不会杀死的进程来解决我的问题吗?如果是的话,你会建议什么方法(我没有太多与IPC合作)
- 如果我使用IPC,我如何知道何时终止"调试格式化过程"
我认为即使使用IPC,您的线程在进程故障期间也可能存在未写入的调试信息的情况。大概你没有一直在调试,所以我认为你不需要一个单独的线程,只需要一个编译时或运行时选项来启用它。你可能可以为进程SetUnhandledExceptionFilter
,并在终止之前做一些事情。
相关文章:
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 如何仅为一个函数添加延迟
- IPC使用多个管道和分支进程来运行Python程序
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- Python中的for循环与C++有何不同
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 以在Qt中的IF语句中设置时间延迟
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 模板化类中静态成员的延迟初始化
- 如何在Qt中延迟进程
- Linux 进程调度延迟了很长时间
- 中断 arduino 例程以运行基于延迟的慢速进程
- 如何在不使用 sleep() 的情况下使用 ontimer 函数延迟进程
- 网络延迟和应用程序>进程消息()
- 如果另一个线程导致进程在windows上崩溃,我该如何延迟销毁进程