首页 > Windows开发 > 详细

C# 使用队列

时间:2020-08-15 17:27:33      阅读:75      评论:0      收藏:0      [点我收藏+]
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# 使用队列

原文:https://www.cnblogs.com/xwcs/p/13508968.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!