Ich habe überall im Internet gesucht, aber ich kann keine Antwort auf die folgende Frage finden.Abbrechen NamedPipeClientStream.Read Anruf
Ich habe eine C# /. NET NamedPipeClientStream-Instanz in einem Client-Programm, und ein Arbeitsthread ruft NamedPipeClientStream.Read (Byte [], Int, Int), um Daten von einem Server abzurufen. Der Server sendet Datenaktualisierungen an den Client.
Lesen ist ein blockierender Anruf. Wenn ich den Client schließen möchte, gibt es eine Möglichkeit, den Read-Aufruf abzubrechen/zu beenden? Ich habe versucht, Close auf der Named Pipe-Instanz aufzurufen, hat aber keine Auswirkung auf den Thread, der Read aufgerufen hat.
Ich würde denken, dass es eine Möglichkeit geben würde, einen Leseanruf abzubrechen. Wenn nicht, scheint es, als wäre das eine sehr schlecht gestaltete API, weil Ihr Programm der Pipe ausgeliefert ist.
Alle Informationen werden sehr geschätzt.
-Chris
: D Du bist mein Held! Wenn die Pipe als asynchron festgelegt wird, führt dies dazu, dass ein geblockter Aufruf von Read zurückgegeben wird, wenn Close aufgerufen wird. Danke vielmals! – Chris