C# 使用队列

public class LogCommon
    {
        public static Queue<string> LogQueue = new Queue<string>();             //实例化一个队列

        static LogCommon()          //日志写入文件的方法在类的静态构造函数中实现,这样,在队列被调用的时候,会自动调用此方法
        {
          
            //开启线程池来写日志
            ThreadPool.QueueUserWorkItem(a =>
            {
                while (true)
                {
                    string ex = string.Empty;

                    lock ("Itcast-DotNet-AspNet-Glable-LogLock")
                    {
                        if (LogQueue.Count > 0)   //如果队列中有数据,将其出队列
                        {
                            ex = LogQueue.Dequeue();
                        }
                        else
                        {
                            Thread.Sleep(30);        //如果没有数据,让线程睡30毫秒,之后进入下一轮循环
                            continue;
                        }
                    }
                    //需要串行执行的代码
                }

            });


        }
public static void WriteLog(string str)                //将日志写入到队列中的方法
        {
            lock ("Itcast-DotNet-AspNet-Glable-LogLock")
            {
                LogQueue.Enqueue(str);
            }
        }

 

C# 使用队列

上一篇:Aliyun Linux 2 软件更新 - 2019.05.01


下一篇:Kbase #2: THP 功能对系统性能的影响