/// <summary> /// 辅助方法,当需要借助主线程进行某种操作时 /// </summary> public void StartAssist() { var timer = new TimerHelp(); timer.ExcuteCompleted += Assist_timer_ExcuteCompleted; timer.Start(); }
//public MyWebBrowser Browser //{ // get // { // return processBase._form.WebBrowser; // } //} /// <summary> /// 对 TimerHelp Start 进行封装,提供判断 IsQuit() 的功能 ,子类不需要再判断 /// </summary> public void TimerHelp_Start(ExcuteCompletedAgency excuteCompleted, object param = null, int times = 100, int intervalTimes = 100) { TimerHelp.Start((x, y, z) => { if (IsQuit()) { //_form. RecordLog("IsQuit() 退出:" + excuteCompleted?.Method?.Name); return; } excuteCompleted(x, y, z); }, param, times, intervalTimes); }
void Assist_timer_ExcuteCompleted(TimerHelp timer, object param, bool isCancel) { lock (_assistActions) { if (_assistActions.Count > 0) { try { foreach (var action in _assistActions) { try { action(); } catch (Exception ee) { // var position = nameof(ProcessForm) + "--" + nameof(Assist_timer_ExcuteCompleted); //var errMsg = ee.ErrMessage(position); var errTitle = "【ProcessForm 定时方法执行异常】:"; //LogManager.全局异常重点关注_Error(errTitle + errMsg.DetailErrMessage); } } } catch { } finally { _assistActions.Clear(); } } } //webBrowser销毁表示程序退出了 if (!browser.IsDisposed) { StartAssist(); } else { //打个日志 } }