INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Absturz von Labview nach schliessen eines VIs



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

17.01.2012, 19:50
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Absturz von Labview nach schliessen eines VIs
(17.01.2012 16:22 )sima schrieb:  Hallo,

Danke für deine Hinweise. Die Funktionen der DLL starten und beenden einen TCP-Client und haben keine weiteren Über- oder Rückgabewerte.

Ich habe im Call Library Function Node die Thread-Konifguration geändert von "Run in UI thread" zu "Run in any thread".

Vorerst habe ich jetzt keine Abstürze mehr. Aber eigentlich dürfte es doch auch bei der Option "Run in UI thread" zu keinem Abturz kommen oder?

Gruß
Sima

Das hängt ganz davon ab wo und wie die DLL TCP anspricht. Winsock ist relativ unkritisch lässt aber extrem viele Möglichkeiten zu, die bei den asynchronen APIs, die eben nicht ganz asynchron sind, schon mal irgendwelche obskuren Threading Issues verursachen können.

AktiveX ist eine regelrechte Katastrophe da dies normalerweise voraussetzt dass man die entsprechenden Objekte immer vom selben Thread aus ausruft. Das tut in LabVIEW nur der UI Thread, (oder wenn Du die ActiveX Knoten explizit verwendest) aber der hat wieder eigene ziemlich haarige Abhängigkeiten vom Windows Message Dispatcher, der auch beim Dispatchen von DCOM Methoden eine sehr wichtige Rolle spielt, sodass es da durchaus zu kompletten Lockouts kommen kann.

Last but not least gibt es natürlich noch .Net, ebenfalls eine möglicherweise abenteurliche Sache, sicher wenn das Threading Konzept von LabVIEW sich mit dem Threading Konzept von .Net vertragen muss, ohne dass die beiden explizit voneineander wissen. Dazu kommt noch die etwas pseudo-mässige Implementation des asynchronen Winsock APIs die dank Altlasten doch auch wieder in die Windows Message Dispatch Queue einhackt und Du hast ein Rezept für viele Stunden Debugging und Haareraufen (übrigens auch ohne LabVIEW, aber das macht das Ganze meistens noch ein wenig spannender).

BSD Socket Programmierung ist auch nicht gerade Kleinkinderkost, aber zumindest beim Threading muss man sich normalerweise nicht noch extra Gedanken machen, ausser den normalen Race-Konditions usw. die bei jeder Multithreadingprogrammierung wichtig sind.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Absturz von Labview nach schliessen eines VIs - rolfk - 17.01.2012 19:50

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Absturz durch unzulässige Pointer VS_03 3 9.485 28.10.2016 18:32
Letzter Beitrag: VS_03
  Labview blockiert serielle Schnittstelle nach Aufruf der DLL Berdschi 5 7.634 24.04.2014 08:38
Letzter Beitrag: Berdschi
  Absturz und fehler bei aufrufen einer externen dll Georg26 3 5.968 18.07.2011 09:45
Letzter Beitrag: Georg26
  Aufruf von DLL führt zu Absturz... tt-web 3 6.393 11.05.2010 11:34
Letzter Beitrag: rolfk
  Ausführen eines Matlab m-Files in LabVIEW benny 3 10.166 07.01.2008 16:50
Letzter Beitrag: Y-P
  LabVIEW: Absturz nach externem Code-Aufruf abrissbirne 22 19.774 14.09.2007 07:18
Letzter Beitrag: rolfk

Gehe zu: