Forum: PC-Programmierung Remote Desktop Verbindung zerschießt C# Forms Programm


von Ben S. (theben)


Lesenswert?

Hallo Leute,

ich habe mir eine C# Forms Anwendung geschrieben, die Geräte für 
Langzeitmessungen steuert.

Grob vereinfacht funktioniert das Programm so:
1
Thread buttonThread = null;
2
3
private void button1_Click(object sender, EventArgs e)
4
{
5
   if (buttonThread == null)
6
   {
7
        buttonThread = new Thread(buttonMethod);
8
        buttonThread.Start();
9
   }
10
}
11
12
private void buttonMethod()
13
{
14
   string text = "Hallo";
15
16
   // do something, measurements and complete the text with status informations
17
18
   IAsyncResult asyncResult = this.BeginInvoke((MethodInvoker)delegate { reportStatus(text); });
19
   this.EndInvoke(asyncResult); 
20
}
21
22
private void reportStatus(string text)
23
{
24
   label1.Text = text;
25
}

Das funktioniert an sich ganz gut. Nur wenn ich mich von einem anderen 
PC (Win10) aus per Remote Desktop (RDP) verbinde geht das Problem los. 
Bei der aufrecht erhaltener Verbindung gibt es noch keine Probleme. Nach 
dem ich die Verbindung trenne bleibt das Programm hängen. Und zwar bei
1
this.EndInvoke(asyncResult);

Was ich bisher raus gefunden habe ist, das beim Trennen der RDP 
Verbindung anscheinend die Grafikkarte abgeschalten wird, so das der 
Forms prozess angehalten wird.

Nun weis ich nicht an welcher Stelle ich anfangen soll. Sind die RDP 
Einstellungen Mist? Gibt es irgendwo eine Einstellung, wo ich eingeben 
kann, dass nach der Trennung die grafischen Programme nicht gestoppt 
werden. Oder muss ich mein Programm umschreiben, bei dem der Thread ohne 
Form weiter lafen kann und die Form nach einer RDP Neueinwahl wieder 
anläuft.

Weitere Beobachtungen: Mit einem Kollegen hatte ich ein ähnliches 
Problem mit einer Virtuellen Maschine. Die VM lief auf einem anderen 
Rechner. Immer wenn ich mich über RDP mit diesem Rechner verbunden und 
wieder getrennt habe wurde die VM angehalten. Bei meinem Kollegen, der 
eine ältere Windows Version nutzt ist das nicht passiert.

Hintergrundinfos:
Zielrechner Windows 10 !nicht Headless! also Bildschirm, Maus, Tastatur 
dauerhaft angeschlossen.
StartRechner ebenfalls Windows 10

Beitrag #6948289 wurde vom Autor gelöscht.
von Tim T. (tim_taylor) Benutzerseite


Lesenswert?


von Remotemaster (Gast)


Lesenswert?

Schreib dir halt einen Proxy der auf dem Bildschirm malt
und Events prueft.
Wenn der nicht mehr willig ist, kann dein Hauptprogramm den
einfach abschiessen und neu starten.

Das ist doch nun einfach oder?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.