Ereignisse in einem separaten Thread auslösen

Ich entwickle eine Komponente, die den Live-Feed verarbeiten und die Daten auf ziemlich schnelle Weise an die Zuhörer senden muss (mit einer Genauigkeit von etwa 100 Nano-Sekunden, wenn ich das schaffe, noch weniger) Code, den der Abonnent abonnieren kann. Da jedoch in C # -Ereignishandlern derselbe Thread ausgeführt wird, der das Ereignis auslöst, wird mein Thread, der das Ereignis auslöst, blockiert, bis alle Abonnenten die Verarbeitung des Ereignisses abgeschlossen haben. Ich habe keine Kontrolle über den Code der Abonnenten, so dass sie möglicherweise zeitaufwändige Vorgänge in der Ereignisbehandlungsroutine ausführen können, die den rundgesendeten Thread blockieren.

Was kann ich tun, damit ich die Daten an andere Abonnenten senden kann, aber trotzdem ziemlich schnell?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage