Ich habe zwei Windows C# WinForms-Anwendungen, die die gleiche Weise in Bezug auf dieses Problem verhalten. Das Verhalten tritt auf, wenn die Anwendungen in dieser Reihenfolge ausgeführt werden: Hauptanwendung wird gestartet und ein Teil des normalen Arbeitsprozesses öffnet einige Sockets; Mischung aus TCP-UDP und Multicast. Wenn Sie eine Taste drücken, wird eine andere Anwendung gestartet, die C# -Prozessbibliotheken verwendet. Die zweite App startet ok und alles ist in Ordnung.C# windows (WinForms) untergeordnete Anwendung sperrt Sockets
Es ist bekannt und akzeptabel, dass, wenn ich eine zweite Instanz meiner Hauptanwendung starte, die zweite Instanz nicht in der Lage sein wird, die Sockets zu verwenden, die der erste besitzt. Das Problem, das ich habe, ist, dass, wenn ich die erste App herunterfahre und neu starte, es nicht in der Lage sein wird, die Sockets mehr zu bekommen ... bis die Kind-App auch heruntergefahren wird. Beachten Sie, dass die zweite App KEINE ANY-Sockets verwendet, aber irgendwie hält Windows die Sockets gesperrt, bis die zweite App heruntergefahren wird.
Ich habe diese Frage ZU PROGRAMMIER ZUSAMMENHANG MIT DEN IN C# WIN Formen, die JETZT MIT GROSSBUCHSTABEN FÜR MENSCHEN ZUM THEMA IST, DIE NICHT EIN/AUS-THEMA unterscheiden:
wie löse ich das so, dass ich don muss nicht die zweite App herunterfahren, damit der erste seine Sockets erwerben kann (WHICH -ich weiß - SIND FREI).
Crystal Ball sagt, dass Sie ProcessStartInfo.UseShellExecute auf * false * festgelegt haben. Tu das nicht. –
Kristallkugel? Welche Programmiersprache ist das? Ist es (MEHR) AUF DAS THEMA, anderen zu helfen, Antworten auf ihre Fragen zu finden? . Diese Frage und ihre Antwort mögen auch hilfreich für Leute sein, die .NET benutzen, aber nicht zu viel Erfahrung mit win32 haben. Es hat mir geholfen. –