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 

VI mit externer DLL macht kein Multithreading



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!

06.12.2009, 11:18 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2009 12:02 von rolfk.)
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
VI mit externer DLL macht kein Multithreading
' schrieb:>VIs haben keinen Parameter "UI-Thread oder beliebigem Thread".
Ja, so ists, die haben keinen solchen Parameter, nur das Call Library Node hat sowas.

Role hat es ja schon gezeigt. Diese Einstellung gibt es eben doch! Big Grin

Zur Kommunikation mit Netzwerkdevices. Wiederholtes Open-Read-Write-Close für solche Geräte ist keine gute Idee wenn die Schnellheit wichtig ist. Das Öffnen eines Kommunikationskanals an sich kostet typischerweise schnell mal 50 bis 100 ms (Bei Verwendung von IPv6 sockets in Windows XP zumindest, gar das Doppelte). Zudem gibt es bei TCP Write noch den interessanten Nagle Algorithmus. Der verursacht bei kleinen Writepacketen ein Standarddelay von 200ms bevor das Packet den Computer echt verlässt. Den kann man mit der TCPNoDelay Socketoption zwar ausschalten, aber ohne Sicht auf die VS2005 Sourcen ist es unmöglich zu sagen ob Du da Rechnung damit getragen hast. Auch arbeitet Winsock standardmässig in blocked mode und das in C oder dergleichen anders zu machen ist nicht trivial. Je nach dem ob Du also diese Sockets verwendest oder aber eine höhere Kommunikationslibrary, kann das auch noch ein Stolperstein sein.


Ich bin also nicht ganz überzeugt dass das angedeutete Problem durch die verkehrte (oder Nicht-)Verwendung von Ablaufinvarianz verursacht wird, obwohl das natürlich auch noch sein kann. Ich weiss aber ganz sicher und habe das auch schon öfters verwendet, dass LabVIEW auch bei den Netzwerkfunktionen selber ablaufinvarient funktioniert. Das Problem der unerwarteten Laufzeitverzögerung kann also ganz einfach auch inherent an Deiner Implementation in der DLL liegen.

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
Antwort schreiben 


Nachrichten in diesem Thema
VI mit externer DLL macht kein Multithreading - rolfk - 06.12.2009 11:18

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Aufruf externer Bibliotheken / Keyence / Schnittstelle _Markus_ 1 6.373 20.05.2019 12:23
Letzter Beitrag: _Markus_
  LabView Wrapper - PostUserEvent aus externer DLL Stephan235 3 10.460 22.07.2015 13:28
Letzter Beitrag: rolfk
  Einbinden externer DLL St_Markus 1 6.923 28.05.2013 15:25
Letzter Beitrag: rolfk
  VI als externer Code finalr 1 5.074 23.11.2012 08:58
Letzter Beitrag: GerdW
  Array Elemnte von externer Funktion verbinden Heili 3 5.397 12.11.2010 13:54
Letzter Beitrag: Lucki
  Debugging externer DLL Tom_UniMainz 4 8.739 22.07.2009 07:31
Letzter Beitrag: rolfk

Gehe zu: