我的C#.net应用程序目前执行以下操作(除其他外):
当我的应用程序重新启动,但外部应用程序没有关闭时,套接字似乎永远不会关闭.然后,当我尝试再次启动该端口上的通信时,我收到错误.但是,只要我关闭外部应用程序,我就可以在该端口上打开一个套接字.
好像我的程序没有正常关闭.它应该在退出时杀死套接字,但是当外部进程运行时,套接字永远不会关闭.
有任何想法吗?
Jos*_*osh 16
这只是一个刺,因为我已经看到你是如何开始外部过程的.如果你正在创建一个Process对象,我的猜测是你没有设置:
ProcessStartInfo.UseShellExecute = true;
Run Code Online (Sandbox Code Playgroud)
如果UseShellExecute设置为false,则子进程将从父进程继承打开的套接字句柄.即使父应用程序已关闭,这也将使您的套接字保持打开状态.