public void AddInfo(string info, DateTime time, ETextMsgState state = ETextMsgState.ENormal, bool bNotity = true)
 {
     m_mutexListInfo.WaitOne();
     m_listTextInfo.Add(new CTextInfo()
     {
         Time = time, Info = info
     });
     m_mutexListInfo.ReleaseMutex();
     if (m_listTextInfo.Count > m_iMaxListCount)
     {
         Task task = new Task(() => { WriteInfoToFile(); });
         task.Start();
     }
     else
     {
         // 开启定时器
         m_timer.Start();
     }
     if (bNotity)
     {
         if (null != RecvedNewSystemInfo)
         {
             // 通知其它订阅者
             Task.Factory.StartNew(() =>
             {
                 RecvedNewSystemInfo.Invoke(this, new CEventSingleArgs <CTextInfo>(new CTextInfo()
                 {
                     Time = time, Info = info, EState = state
                 }));
             });
         }
     }
 }
예제 #2
0
        // 添加显示内容
        public void AddText(string str, ETextMsgState state)
        {
            try
            {
                //if (!this.IsHandleCreated)
                //{
                //    return;
                //}
                ListViewItem item = new ListViewItem()
                {
                    Text = str
                };
                Color forcolor = Color.Black;
                switch (state)
                {
                case ETextMsgState.ENormal: { item.ImageIndex = 0; } break;

                case ETextMsgState.EWarning: { item.ForeColor = Color.Yellow; item.ImageIndex = 1; } break;

                case ETextMsgState.EError: { item.ForeColor = Color.Red; item.ImageIndex = 1; } break;
                }
                m_listView.AddItem(item);
            }
            catch (System.Exception exp)
            {
                System.Diagnostics.Debug.WriteLine(exp.Message);
            }
        }