小编M N*_*raf的帖子

更改控制台颜色在多线程应用程序中不能正常工作

我正在研究多线程应用程序(服务器),它基本上是一个控制台应用程序.其中我显示处理日志到控制台默认为白色.但是在成功的交易中我以绿色显示文本,而在不成功的交易中我以红色显示文本.所以我在Program.cs中有三个独立的功能.

对于简单的日志

public static void Write(string text)
{
        try
        {
            Console.Out.Write(text);
        }
        catch (Exception)
        { }
    }
Run Code Online (Sandbox Code Playgroud)

对于不成功的交易,我将颜色更改为红色,然后打印然后再返回白色

    public static void WriteError(string text)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine("\t" + text);
        Console.ForegroundColor = ConsoleColor.White;
    }
Run Code Online (Sandbox Code Playgroud)

对于成功的交易,我将颜色更改为绿色,然后打印然后再返回白色

    public static void WriteSuccess(string text)
    {
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("\t" + text);
        Console.ForegroundColor = ConsoleColor.White;

    }
Run Code Online (Sandbox Code Playgroud)

问题是连接的客户端超过200个,并且每个客户端的事务日志都在控制台上打印.当我为单行更改颜色如绿色时,它会导致许多其他正常日志行也变为绿色.所以请告诉我如何解决这个问题.

c# console thread-safety

11
推荐指数
2
解决办法
3650
查看次数

C#应该在连接池中保持打开连接

我正在研究多线程应用程序(服务器),我曾经一次处理2000个客户端,我在每个线程中打开MySQL数据库的单独数据库连接.所以我启用了连接池.我搜索了许多块,在使用连接后我们应该关闭它然后它将返回池并将被其他线程使用.另一方面,我们知道连接制作是一个耗时的过程.所以我的问题是为什么我们应该在连接池中关闭连接.什么是更好的保持连接打开或关闭它们?

c# database

6
推荐指数
1
解决办法
604
查看次数

标签 统计

c# ×2

console ×1

database ×1

thread-safety ×1