Ich bin in C# codieren. Kann es zu einer Kollision kommen, wenn zwei Threads auf dieselbe serielle Schnittstelle schreiben? Wenn ja, wie kann ich damit umgehen? Außerdem möchte ich einem der Threads Priorität einräumen. Wenn beispielsweise zwei Threads an den seriellen Port schreiben, möchte ich die Übertragung von Thread 1 anhalten, wenn ich Daten von Thread 2 schreibe (d. H. Thread 2 hat Priorität gegenüber Thread 1 beim Schreiben in den Port).Kann es zu einer Kollision kommen, wenn zwei Threads auf dieselbe serielle Schnittstelle schreiben?
Vielen Dank für die Antworten. Aber eine meiner Fragen bleibt unbeantwortet. Sobald ich die Daten aus Thread 1 geschrieben habe. Es sollte lesen/schreiben von anderen Thread pausieren und diese Daten übertragen, dann weiter mit der pausierten Funktion.
Das macht nicht viel Sinn, das Gerät am anderen Ende des Kabels wird furchtbar verwirrt werden. Verwenden Sie im Allgemeinen einen Mutex, um zwischen Threads zu arbitrieren. –
Wie @HansPassant sagt, "Interrupt" ein Thread an einem beliebigen Punkt wird jede Protokolleinheit, die Sie verwenden, in Bits hacken. Muxtex, vielleicht. Wenn ein Thread "Priorität" hat, wird der andere Thread zum Prioritäts-Thread mit allen Daten, die er senden will, das prio. Thread kann dann damit umgehen, wenn es mit seinen eigenen Sachen fertig ist. –