2016-05-04 5 views
-2

Ich mache einen OPC-Client auf Winforms, Client, der Verbindung mit Server und Lesen von Daten von ihm mit OPC-Protokoll. So, ich erfolgreich Verbindung zum Server, aber wenn mein Programm abstürzt oder ich es manuell vom Task-Manager schließe, ist die Verbindung mit dem Server immer noch vorhanden (und das ist nicht gut).Wie kann ich überprüfen, ist mein Programm abstürzen?

Kann ich irgendwie mein Programm auf korrekte Beendigung überprüfen? Und wenn mein Programm inkorrekt endet, dann trennen Sie vom Server.

Ich habe versucht, myProcess.HasExited zu verwenden, aber es funktioniert nicht.

+0

Hallo Ramon, bitte diese Zeilen lesen und bearbeiten Sie Ihre Frage entsprechend: http://stackoverflow.com/help/how-to-ask –

+0

Da Sie ein 'Process' vorgeschlagen haben Ich nehme an, Sie starten eine EXE und fragen, wie Sie diese Komponente überwachen können. Warum das tun? Warum ist die EXE selbst nicht dafür verantwortlich, die Verbindung ordnungsgemäß zu schließen, wenn etwas schief geht? Es ist höchst unwahrscheinlich, dass Sie das aus der Ferne bewältigen könnten ... – DonBoitnott

+0

Ich weiß es eigentlich nicht. Ich dachte auch so, – Ramon

Antwort

-1

Ich kann nur vermuten, dass Sie Socket für die Serververbindung verwenden können. Wenn dies der Fall ist, empfiehlt es sich, das Programm nach dem Server-Aufruf zu schließen. Sie müssen die Sequenz Shutdown(), Close(), Dispose() aufrufen.

Sehen Sie diese MSDN-Artikel: https://msdn.microsoft.com/en-us/library/wahsac9k(v=vs.110).aspx

+0

Danke, aber ich benutze jemand hausgemachte Bibliothek für OPC, und dort hatte bereits Disconnect-Methoden. Aber ich weiß nicht, wie man trennt, wenn Programmabsturz. – Ramon

+0

Sie müssen die Ereignisse "alle unbehandelten Ausnahmen abfangen" abonnieren. Dies sollte helfen: http://stackoverflow.com/a/32396235/1786034 – zmechanic

+0

Vielen Dank! Ich werde es versuchen. – Ramon

Verwandte Themen