C#的ZMQ句柄会被子程序继承解决方案

笔者在写程序的时候,主程序会拉起很多小的子程序
然后彼此之间通过ZQM来通讯
但是主程序由于某种不可抗力因素(闪退)关闭时
原本用于通讯的端口就会被占用
这时候主程序想再连上这个端口就会提示被占用
找了网上的资料或者问AI,发现答案有两面性
经过测试:

Process process = new();
process.StartInfo.UseShellExecute = true;

只有当 UseShellExecute 这个属性为true的时候,才不会继承句柄

image

当使用Shell启动的时候,程序使用的就是Shell的上下文,所以不会继承主程序死掉之后的句柄
不知道AI哪里来的幻觉,死活说要为False

posted @ 2026-08-10 15:00  Poetindusk  阅读(1)  评论(0)    收藏  举报