Jump to content

oro

Members
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

oro's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Sieht nach nem Deadlock aus. Eventuell liegts an dem Zusammenspiel von Invoke (der Threadwechsel von Thread X auf UI-Thread) und der Implementierung von Disconnect: Aus den C# Bindings IpConnection.cs /// <summary> /// Disconnects the TCP/IP connection from the Brick Daemon or the /// WIFI/Ethernet Extension. /// </summary> public void Disconnect() { /* Der Übersicht halber rausgelöscht*/ if (Thread.CurrentThread != localCallback.thread) { localCallback.thread.Join(); } } Meine Theorie wäre: Durch den Callback sind wir im Moment des Aufrufs nicht auf dem UI-Thread. Das obere Snippet wartet auf die Beendigung dieses Threads. Gleichzeitig versuchen wir aber im Callback auf den UI-Thread zurückzuwechseln, was mMn nicht klappen kann, da dieser Thread durchs .Join() aus der Diconnect-Methode blockiert ist. Kann sein, dass meine Theorie Müll ist, mit einem BeginInvoke()-Call statt des Invoke()-Calls sollte es aber funktionieren. Mich würde noch interessieren, für was der Thread.Join() im Disconnect überhaupt drin ist. Grüße, oro edit: Hier findest ne Erklärung zum Unterschied von BeginInvoke/Invoke: https://stackoverflow.com/questions/229554/whats-the-difference-between-invoke-and-begininvoke
  2. Alles klar, danke für die Antwort.
  3. Hallo zusammen, meine Frage lautet, ob man die UID eines Bricks (Master,DC,...) ändern kann und wenn ja wie ich vorgehen müsste? Danke im Voraus, oro
×
×
  • Neu erstellen...