मैं बहुप्रचारित एप्लिकेशन (एक सर्वर) पर काम कर रहा हूं जो मूल रूप से एक कंसोल एप्लिकेशन है। जिसमें मैं प्रसंस्करण लॉग को कंसोल पर दिखाता हूं जो डिफ़ॉल्ट रूप से सफेद रंग में होता है। लेकिन सफल लेनदेन पर मैं पाठ को हरे रंग में और असफल लेनदेन पर दिखाता हूं, मैं लाल रंग में टेक्स्ट दिखाता हूं। इसलिए इसके लिए Program.cs में मेरे पास तीन अलग-अलग फ़ंक्शन हैं।मल्टीथ्रेड किए गए अनुप्रयोगों में ठीक से काम नहीं कर रहे कंसोल रंग बदलना
सरल लॉग
public static void Write(string text)
{
try
{
Console.Out.Write(text);
}
catch (Exception)
{ }
}
असफल लेनदेन मैं लाल करने के लिए रंग बदलने के लिए, तो सफेद
public static void WriteError(string text)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t" + text);
Console.ForegroundColor = ConsoleColor.White;
}
सफल लेनदेन के लिए करने के लिए प्रिंट और फिर वापस मैं हरे रंग की है, तो प्रिंट और उसके बाद करने के लिए रंग बदलने वापस सफेद
public static void WriteSuccess(string text)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("\t" + text);
Console.ForegroundColor = ConsoleColor.White;
}
समस्या तब होती है जब 200 से अधिक ग्राहक con nected और प्रत्येक ग्राहक के लेनदेन का लॉग कंसोल पर प्रिंटिंग है। और जब मैं सिंगल लाइन के लिए हरे रंग की तरह रंग बदलता हूं तो यह सामान्य लॉग की कई अन्य रेखाओं को हरे रंग में भी बनाता है। तो कृपया मुझे बताएं कि मैं इस समस्या को कैसे हल कर सकता हूं।
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("\t" + text);
आप रंग, एक और धागा बीच में आता है, सेट कुछ और करने के लिए रंग सेट और फिर आप पाठ (गलत रंग में) मुद्रित:
मुझे लगता है कि आपको – AMember