Wie sperre ich die Konsole über Threads in C # .NET?

9

Ich habe eine Klasse logger , die verschiedene Informationsanzeigen mit hübschen Farben (yay.) verarbeitet. Da es jedoch in getrennten Schritten in die Konsole schreibt ( dh Farbe auf rot setzt, schreibe Text, setze Farbe auf grau, schreibe Text, für etwas, das rendern würde "[Fehler] Beschreibung. .. "mit dem Fehler in rot ), aber ich habe eine Multithread-Anwendung, so können die Schritte durcheinander geraten und zufällige Sachen in zufälligen Farben drucken.

Ich kenne das Schlüsselwort lock , es funktioniert jedoch nicht mit einer statischen Klasse wie der Konsole.

Hier ist ein Beispielcode, wenn ich nicht genau weiß:

%Vor%     
Lazlo 05.10.2009, 23:37
quelle

1 Antwort

19

Deine Klasse braucht:

%Vor%

Dann können Sie dies vor dem Schreiben in die Konsole sperren.

%Vor%

Das lock-Schlüsselwort funktioniert mit einer statischen Klasse. Sie müssen lediglich ein static readonly -Objekt bereitstellen, das gesperrt werden soll.

    
jasonh 05.10.2009, 23:49
quelle

Tags und Links