//中止线程 private void TerminateTask(object sender, Task_Level level) { if (TaskDoneHandler != null) { TaskArgs mArgs = new TaskArgs(); mArgs.level = level; TaskDoneHandler(sender, mArgs); } }
private void TaskStatusNotify(object sender, string msg, int value, Task_Level level) { if (level == Task_Level.TASK_INIT) { mTaskStatus = Task_Level.TASK_INIT; mPcuUpgradeStartTask.InitTask(); mPcuUpgradeProcessTask.InitTask(); mPcuUpgradeDoneTask.InitTask(); mPcuUpgradeRunningTask.InitTask(); mPcuUpgradeRequestTask.InitTask(); mPcuEvent.Reset(); if (mPcuStream != null) { mPcuStream.Dispose(); if (mPcuStream != null) { mPcuStream.Close(); } else { mPcuStream = null; } } mPcuStream = new FileStream(this.mfilePath, FileMode.Open, FileAccess.Read); PCU_FILE_LENGTH = (int)mPcuStream.Length; } else if (level == Task_Level.TASK_PROGRESS) { if (pcuProgressBarHandler != null) { ProgressArgs mArgs = new ProgressArgs(); mArgs.percentage = value; pcuProgressBarHandler(sender, mArgs); } } else if (level == Task_Level.TASK_DONE) { if (TaskDoneHandler != null) { TaskArgs mArgs = new TaskArgs(); mArgs.level = mTaskStatus; TaskDoneHandler(sender, mArgs); } } }
private void UpdateLviStatus(object sender, string msg, Task_Level level) { if (level == Task_Level.TASK_PASS) { mTaskStatus = level; } if (level == Task_Level.TASK_FAIL) { mTaskStatus = level; this.pcuWorkTask.CancelAsync(); Thread.Sleep(5); mPcuEvent.Set(); } if (PcuLviHandler != null) { TaskArgs mArgs = new TaskArgs(); mArgs.msg = msg; mArgs.level = level; PcuLviHandler(sender, mArgs); } }
private void UpdatePcuItems(string msg, Task_Level level) { if (this.listView1.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.listView1.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.listView1.Disposing || this.listView1.IsDisposed) { return; } } UpdatePcuItemsCallback d = new UpdatePcuItemsCallback(UpdatePcuItems); this.listView1.Invoke(d, new object[] { msg, level }); } else { this.listView1.BeginUpdate(); switch (level) { case Task_Level.TASK_INIT: this.listView1.AddEmbeddedControl(pcuProgressBar, 2, 0); break; case Task_Level.TASK_PROCESS: mPcuItem.SubItems[4].Text = ""; mPcuItem.SubItems[1].ForeColor = Color.Blue; mPcuItem.SubItems[1].Text = msg; break; case Task_Level.TASK_FAIL: this.PcuTestTimeTicker.Enabled = false; this.toolStripBtn_Stop.Enabled = false; this.toolStripBtn_Uart.Enabled = true; this.toolStripBtn_File.Enabled = true; this.toolStripBtn_Start.Enabled = true; mPcuItem.SubItems[1].ForeColor = Color.Red; mPcuItem.SubItems[4].ForeColor = Color.Red; mPcuItem.SubItems[4].Text = "失败"; mPcuItem.SubItems[1].Text = msg; break; case Task_Level.TASK_PASS: this.PcuTestTimeTicker.Enabled = false; //如果CCU 不升级 if (!mTaskParam.bCCU) { this.toolStripBtn_Stop.Enabled = false; this.toolStripBtn_Uart.Enabled = true; this.toolStripBtn_File.Enabled = true; this.toolStripBtn_Start.Enabled = true; } else { this.CcuTestTimeTicker.Enabled = true; } mPcuItem.SubItems[4].Text = "成功"; mPcuItem.SubItems[1].ForeColor = Color.Green; mPcuItem.SubItems[4].ForeColor = Color.Green; mPcuItem.SubItems[1].Text = msg; break; } this.listView1.EndUpdate(); } }