Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
3. Feb 2008
Ich habs hinbekommen. Vielen Dank für eure Hilfe!
Grüße,
Andreas
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
2. Feb 2008
Ja klar, soweit funktioniert das ganze auch schon.
Aber mir reicht es noch nicht zu wissen, welches Event ausgelöst wurde. Ich muss auch wissen, WAS da passiert. Denn eines der Events benachrichtigt mich, wenn ein sich ein Client per Named Pipes verbindet. Und da muss ich wissen, ob sich der neue Client nur verbindet oder ob eine IO-Operation fertig ist.
Konkret versuche ich dieses Beispiel...
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
2. Feb 2008
Naja, wenn ich ehrlich bin, gibt es doch noch ein Problem:
Ich habe bisher den Rückgabewert von WaitForSingleObjectEx ausgewertet. Die Werte 0 und WAIT_IO_COMPLETION waren für mich von Bedeutung.
Gehen diese Informationen bei WaitForMultipleObjects verloren? Oder stecken alle Informationen mit "or" verknüpft im Rückgabewert drinnen? Wäre natürlich optimal...
Danke,
Andreas
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
2. Feb 2008
Bereits implementiert. :-D
Dankeschön,
Andreas
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
26. Jan 2008
Verstehe.
D.h. die simple Methode, die für mich eventuell ausreicht, ist: Ich löse das Event aus und setze die Terminated-Property?
Die Königslösung (und die strebe ich an) ist für das Beenden ein eigenes Event zu registrieren und statt WaitForSingeObjectEx mit WaitForMultipleObjects zu arbeiten.
Werde das gleich mal einbauen und mich bei weiteren Problemen melden...
Vielen Dank,...
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
25. Jan 2008
Soweit habe ich das verstanden, nur:
Wie "zupfe" ich am Event (normalerweise wird das in diesem Fall von Windows erledigt)? Ich tippe auf SetEvent(FConnectEventHandle).
Und ihr meint, dass mir der Rückgabewert von WaitForSingleObjectEx egal sein kann, weil ich einfach Terminated prüfe? Würde zumindest für mich logisch klingen...
Danke,
Andreas
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
25. Jan 2008
Verstehe. Also überschreibe ich einfach die Terminate()-Methode meines Threads.
Also kann ich einfach mein Ereignis mit SetEvent() auslösen? Was mich bei dieser Geschichte am brennendsten interessiert: Welchen Rückgabewert hat dann WaitForSingleObjectEx? 0 und WAIT_IO_COMPLETION sind nämlich OK, alles andere wird als Fehler gerechnet. Jetzt wäre es gut, wenn ich es als Fehler rechnen könnte......
Forum: Win32/Win64 API (native code)
Delphi
by EConvertError,
25. Jan 2008
Hallo!
Ich benutze folgenden Code in einem Thread:
dwWait := WaitForSingleObjectEx(
FConnectEventHandle, // event object to wait for
INFINITE, // we have plenty of time
true);
Eigentlich bin ich sehr zufrieden damit, da es sehr ressourcensparend ist und ich eigentlich keine Timeouts brauche.