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);
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM