Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C-Sharp - Zyklischer Methodenaufruf in TimerElapsed-Event-Routine bleibt stehen

Frage Entwicklung C und C++

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

01.11.2014, aktualisiert 02.11.2014, 1753 Aufrufe, 6 Kommentare

Hallo,

um die Eingänge (analog & digital) einer USB-Interfacekarte (Velleman K8055) einzulesen habe ich die dafür verfügbare DLL in ein C#-Projekt integriert.

In der Klasse "K8055" habe ich die Verweise auf die externen Funktionen der DLL implementiert. Zusätzlich habe ich diverse Methoden erstellt, die von übergeordnetem Programmcode aufgerufen werden können.

Um die Eingänge nicht "manuell" in übergeordneten Programmcode einlesen zu müssen wollte ich innerhalb der Klasse "K8055" einen Timer erstellen, der mir regelmäßig die Eingänge einliest:

01.
public void InputRefreshTimer_Elapsed(object sender, ElapsedEventArgs e) 
02.
03.
            this.InputRefreshTimer.Stop(); 
04.
 
05.
            Console.WriteLine("Start: " + DateTime.Now.ToString()); 
06.
 
07.
            Console.WriteLine(K8055.ReadAllDigital().ToString()); 
08.
 
09.
            Console.WriteLine("Ende: " + DateTime.Now.ToString());        
10.
 
11.
            this.InputRefreshTimer.Start(); 
12.
}
Rufe ich die Methode manuell auf ( InputRefreshTimer_Elapsed(null, null) ), funktioniert sie wunderbar. Wenn Sie aber durch das Elapsed-Event vom Timer aufgerufen wird, bleibt sie an der Zeile mit dem "K8055,ReadAllData()" stehen.

Ich vermute dass es irgendetwas damit zu tun hat, dass hierbei Threads eingesetzt werden, aber ich komme einfach nicht weiter.

Hat jemand eine Idee?

Danke
mabue
Mitglied: emeriks
01.11.2014 um 17:56 Uhr
Hi,
bleibt sie "stehen" (hängt) oder wird eine Exception ausgelöst?
Deinem Verdacht mit dem Thread kannst Du nachgehen, in dem Du den Code in eine eigene Sub packst und diese Sub explizit in einem neuen Thread startest (ohne den Timer).

E.
Bitte warten ..
Mitglied: mabue88
01.11.2014 um 18:58 Uhr
Hallo emeriks,

es bleibt tatsächlich stehen. Eine Exception wird nicht ausgelöst.
Wird die Methode direkt aus der Main aufgerufen (kein Thread), läuft sie problemlos durch. Starte ich sie als Thread aus der Main, bleibt sie auch stehen...
Bitte warten ..
Mitglied: schmitzi
02.11.2014 um 01:21 Uhr
Hi,

ReadAllDigital() meint aber schon ReadAllData() ?

Gruss RS
Bitte warten ..
Mitglied: colinardo
LÖSUNG 02.11.2014, aktualisiert um 19:40 Uhr
Verwendest du wirklich die aktuellste DLL des Herstellers?
Der hier hatte nämlich das selbe Problem mit dem Blocking des Threads mit einer älteren Version der DLL:
K8055 call to ReadAllDigital() blocking indefinitely

Grüße Uwe
Bitte warten ..
Mitglied: mabue88
02.11.2014 um 19:40 Uhr
Hallo colinardo,

nachdem ich alle Downloads des Herstellers heruntergeladen und die Änderungsdaten der darin enthalten DLLs verglichen habe, habe ich festgestellt, dass es tatsächlich unterschiedliche Versionen davon gibt. Mit der aktuellsten Version funktioniert das Programm.

Danke für deinen Hinweis!

Gruss
mabue
Bitte warten ..
Mitglied: schmitzi
03.11.2014 um 19:33 Uhr
Du brauchst doch nur den Nippel durch Lasche ziehn,
und mit der kleinen Kurbel ganz nach oben drehn,
da erscheint dann so ein Pfeil,
und da drückst Du dann nur drauf,
und schon - ist das Update drauf

:o) :o)
Bitte warten ..
Ähnliche Inhalte
C und C++
C-Sharp Event fängt an rumzuspinnen
Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren, ich möchte einen schönen Effekt von dem Metroframework einbinden, wenn die Maus über ein Steuerelement fährt. ...

C und C++
C-Sharp - Event durch eine Klasse durchreichen?
Frage von mabue88C und C++1 Kommentar

Hallo, ich habe ein Projekt, bei dem eine Klasse mehrere untergeordnete Klassen besitzen. Nehmen wir einfach mal an, dass ...

Batch & Shell
Robocopy bleibt stehen bei einer datei
gelöst Frage von shooanBatch & Shell8 Kommentare

Habbo, ich habe hier ein kleines Problem mit meinem Script das mir meine Dateien Kopieren soll. Es bleibt einfach ...

IDE & Editoren
IDE für C-Sharp und C++ auf Windows
gelöst Frage von BugdroidIDE & Editoren8 Kommentare

Hallo, Ich nutze derzeit Visual Studio, aber auf Dauer ist es mir etwas zu Ressourcenfressend und für meine Zwecke ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 10 StundenWindows 102 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 12 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner3 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen13 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...