C#windows(WinForms)子应用程序锁定套接字

C#windows(WinForms)子应用程序锁定套接字,c#,winforms,sockets,C#,Winforms,Sockets,我有两个windows C#WinForms应用程序,它们的行为与此问题相关。如果应用程序按以下顺序运行,则会显示该行为: 主应用程序启动,部分正常工作过程打开一些套接字;tcp udp和多播的混合。 有时按下一个按钮,它会启动另一个使用C#进程相关库的应用程序。第二个应用程序启动正常,一切正常 众所周知,如果我启动主应用程序的第二个实例,第二个实例将无法使用第一个实例拥有的套接字,这是可以接受的。 我遇到的问题是,如果我关闭第一个应用程序并重新启动,它将无法再获取套接字。。。直到子应用程序也关

我有两个windows C#WinForms应用程序,它们的行为与此问题相关。如果应用程序按以下顺序运行,则会显示该行为: 主应用程序启动,部分正常工作过程打开一些套接字;tcp udp和多播的混合。 有时按下一个按钮,它会启动另一个使用C#进程相关库的应用程序。第二个应用程序启动正常,一切正常

众所周知,如果我启动主应用程序的第二个实例,第二个实例将无法使用第一个实例拥有的套接字,这是可以接受的。 我遇到的问题是,如果我关闭第一个应用程序并重新启动,它将无法再获取套接字。。。直到子应用程序也关闭。 请注意,第二个应用程序不使用任何套接字,但windows会一直锁定套接字,直到第二个应用程序关闭

我有一个与C#WIN表单编程相关的问题,该主题现在以大写字母为主题,面向无法区分主题上/主题下的人:


我如何解决这个问题,这样我就不需要关闭第二个应用程序,第一个应用程序就可以获取它的套接字(我知道它是免费的)。

这是正常的行为。不幸的是,.Net
进程.Start
将true作为
bInheritHandles
传递给(注意:存在允许控制此行为的打开请求:)。作为一种解决方法,请改用本机
CreateProcess
,请参阅。

Crystal ball说明您将ProcessStartInfo.UseShellExecute设置为false。别那么做,水晶球?那是什么编程语言?这(更多)是关于帮助他人找到问题答案的话题吗。这个问题及其答案可能对使用.NET但没有太多win32经验的人也有帮助。它确实帮了我,谢谢你,雷姆斯。这解决了我试图跟踪我创建的外部应用程序的问题。@GoguCelMare我想你也应该阅读它,它可能是你需要的。谢谢。雷姆斯。我的问题只是套接字所有权。因此,使用Kernel32 CreateProcess创建进程的解决方案修复了我的问题。