/// <summary> /// 添加定时 /// </summary> /// <param name="tr"></param> private bool AddTimedRemind(TimedRemind tr, bool isRun = true) { listTimedRemind.Add(tr); listTimedRemind[listTimedRemind.Count - 1].BindTimedDone(TimedRemindDone); if (isRun == false || listTimedRemind[listTimedRemind.Count - 1].Start()) { AddListViewTimed(listViewTimed, listTimedRemind[listTimedRemind.Count - 1]); //Task.Factory.StartNew(() => //{ // Thread.Sleep(5000); // this.Invoke(new Action(() => // { // TimedRemind tmp = new TimedRemind(tr.ToString(), TimedRemindDone); // tmp.Mark += " - Copy"; // if (tmp.Status != TimedRemind.EnmuTimedStatus.Done) // { // listTimedRemind.Add(tmp); // } // })); //}); return(true); } else { listTimedRemind.RemoveAt(listTimedRemind.Count - 1); return(false); } }
/// <summary> /// 添加定时到列表中 /// </summary> /// <param name="listView"></param> /// <param name="tr"></param> private void AddListViewTimed(ListView listView, TimedRemind tr) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = (listView.Items.Count + 1).ToString(); listViewItem.SubItems.Add(tr.StartTime.ToString("HH:mm:ss")); listViewItem.SubItems.Add(tr.EndTime.ToString("HH:mm:ss")); listViewItem.SubItems.Add(GetOverTime(tr).ToString("HH:mm:ss")); listViewItem.SubItems.Add(GetTimeLoopName(tr)); listViewItem.SubItems.Add(tr.Mark); listView.Items.Add(listViewItem); }
/// <summary> /// 获取定时剩余时间 /// </summary> /// <param name="tr"></param> /// <returns></returns> private DateTime GetOverTime(TimedRemind tr) { DateTime over = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); try { over = over.AddSeconds(tr.EndTime.Subtract(DateTime.Now).TotalSeconds); } catch (Exception err) { Console.WriteLine(err.Message); } return(over); }
private void TimedRemindDone(object sender) { try { TimedRemind tm = (TimedRemind)sender; this.Invoke(new Action(() => { ShowForm(this.notifyIconCtrl); Form formMessage = new FormRemind(tm.Mark); formMessage.Show(); })); } catch (Exception err) { Console.WriteLine(err.Message); } }
/// <summary> /// 加载任务定时文件 /// </summary> /// <param name="filePath">加载文件路径</param> private void LoadTimedRemind(string filePath) { if (File.Exists(filePath)) { using (FileStream fs = new FileStream(filePath, FileMode.Open)) { StreamReader sr = new StreamReader(fs); while (!sr.EndOfStream) { TimedRemind tr = new TimedRemind(sr.ReadLine()); if (tr.Status == TimedRemind.EnmuTimedStatus.Run) { AddTimedRemind(tr, false); } } } } }
/// <summary> /// 获取定时循环名称 /// </summary> /// <param name="tr"></param> /// <returns></returns> private String GetTimeLoopName(TimedRemind tr) { String name; switch (tr.TimeLoop) { case TimedRemind.EnmuTimeLoop.One: name = "单次运行"; break; case TimedRemind.EnmuTimeLoop.More: name = "周期运行"; break; default: name = "未知"; break; } return(name); }
/// <summary> /// 更新现有列表中的数据 /// </summary> /// <param name="listViewItem"></param> /// <param name="tr"></param> private void UpdataListViewItem(ListViewItem listViewItem, TimedRemind tr) { if (listViewItem.SubItems[1].Text != tr.StartTime.ToString("HH:mm:ss")) { listViewItem.SubItems[1].Text = tr.StartTime.ToString("HH:mm:ss"); } if (listViewItem.SubItems[2].Text != tr.EndTime.ToString("HH:mm:ss")) { listViewItem.SubItems[2].Text = tr.EndTime.ToString("HH:mm:ss"); } if (listViewItem.SubItems[3].Text != GetOverTime(tr).ToString("HH:mm:ss")) { listViewItem.SubItems[3].Text = GetOverTime(tr).ToString("HH:mm:ss"); } if (listViewItem.SubItems[4].Text != GetTimeLoopName(tr)) { listViewItem.SubItems[4].Text = GetTimeLoopName(tr); } if (listViewItem.SubItems[5].Text != tr.Mark) { listViewItem.SubItems[5].Text = tr.Mark; } }