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