C# BusyWaiting-Problem

aelo

software developer
Thread Starter
Mitglied seit
01.09.2006
Beiträge
3.765
Ort
Österreich / Vlbg
Hi,

ich hab nen größeres Problem bei einer C# Applikation:

Um es mal kurz zu beschreiben, ich habe eine Klasse gebaut die sich um die Netzwerkommunikation kümmert, da ich mehrere Client's hab, speichere ich dann die Objecte in eineme Array -> pcon[];

dann kann ich z.b.b dem client 1 mit pcon[0].Send("message"); eine Nachricht senden. Nun muss ich allerdings auf die Antwort warten.

Ich habe mir überlegt die letzte Antwort des Clients immer auch local zu speichern und mit der letzten Antwort im pcon[0] zu vergleichen und erst weiter zu arbeiten wenn sich die letzte Antwort im pcon[0] ändert
Dies hätte allerdings den Nachteil dass ich eine 100% CPU-Last erzeuge, da ich eine While-Schleife erstellen muss die mir die werte immer wieder vergleicht.

Deshalb meine Frage an euch Profis, wie kann ich das Problem einfach lösen und ohne 100% CPU-Last zu erzeugen auf die richtige! auf meine message zu kommen?

falls ihr Code benötigt, bitte posten...

vielen Dank
mfg
aelo
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Falls es noch jemanden interessiert:
habe das Problem einfach gelöst,
ich überprüfe mit einer While-Schleife ob eine neue Nachricht im Stream vorhanden ist, und wenn nicht lege ich den Thread 1sec Schlafen
Thread.Sleep(1000);

Da ich keine GUI habe und beim Pokern auch immer nur genau ein Client an der Reihe ist mit seinem Zug und die Listener in nem extra Thread laufen ist das auch kein Problem.
Ansonsten wären Timer die bessere Lösung gewesen, bin nun allerdings froh dass es so funktioniert :d

mfg
aelo
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh