コード例 #1
0
ファイル: udcRunLog.cs プロジェクト: GJSoftware/Tool
 /// <summary>
 /// 保存数据
 /// </summary>
 /// <param name="wMessage"></param>
 /// <param name="wLog"></param>
 public void Log(string wMessage, ELog wLog, bool saveFlag = true)
 {
     if (this.InvokeRequired) //跨线程调用
     {
         this.Invoke(new Action <string, ELog, bool> (Log), wMessage, wLog, saveFlag);
     }
     else
     {
         try
         {
             mHEvent.WaitOne();                 //防止对同一文件写入数据
             if (rtbLog.Lines.Length > maxLine) //清空数据
             {
                 rtbLog.Clear();
             }
             if (wMessage == string.Empty)
             {
                 return;
             }
             string insertNow = DateTime.Now.ToString("HH:mm:ss.") + DateTime.Now.Millisecond.ToString("D3") + " | ";
             if (saveFolder == string.Empty)
             {
                 rtbLog.AppendText(insertNow);
             }
             int lines = rtbLog.Text.Length;
             int lens  = wMessage.Length;
             rtbLog.AppendText(wMessage + "\r\n");
             rtbLog.Select(lines, lens);
             rtbLog.SelectionColor = colorArray[(int)wLog];
             rtbLog.ScrollToCaret();
             rtbLog.Refresh();
             string saveInfo = insertNow + "[" + wLog.ToString() + "]: " + wMessage;
             if (saveFlag && saveEnable)
             {
                 SaveToTxt(saveInfo);
             }
         }
         catch (Exception)
         {
         }
         finally
         {
             mHEvent.Set();
         }
     }
 }