private void Work(CaseGroup caseGroup) { string result = ""; try { CaseFileData data = null; try { data = LoadCaseData(caseGroup.FileName, caseGroup.FunList); } catch (Exception e) { LogHelper.Logger.Error("发现文件格式错误", e); return; } data.ID = caseGroup.ID; data.UpStage = caseGroup.UpStage; data.DownStage = caseGroup.DownStage; caseList.Add(data); if (caseGroup.LoopCount == 0) //发送次数为0时,无限循环 { while (IsWork) { SendFastMsgReq(data, out result); if (result == "error") { return; } } } else { for (int i = 1; i < caseGroup.LoopCount; i++) { if (!IsWork) { return; } SendFastMsgReq(data, out result); if (result == "error") { return; } } StartEnable = true; } } catch (Exception error) { this.Dispatcher.Invoke(() => { MessageBox.Show($"{error.Message} \r\n {error.StackTrace}"); }); } }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { if (Interlocked.Exchange(ref inTimer, 1) == 0) { Dispatcher.BeginInvoke(new Action(() => { foreach (var data in caseList) { CaseGroup caseGroup = CaseGroups.FirstOrDefault(o => o.ID == data.ID); if (caseGroup != null) { caseGroup.SendOkCount = data.SendOkCount; caseGroup.SendFailCount = data.SendFailCount; caseGroup.RecFailCount = data.RecFailCount; caseGroup.RecOkCount = data.RecOkCount; caseGroup.UnDealCount = data.SendCount - data.RecCount; } } })); Interlocked.Exchange(ref inTimer, 0); } }