Beispiel #1
0
 /// <summary>
 /// 调用此方法以使调用Wait方法的线程挂起。
 /// </summary>
 public void Reset()
 {
     if (_state == Fillers.FillState.Running || _state == Fillers.FillState.New)
     {
         _asyncObject.Reset();
     }
 }
Beispiel #2
0
 private void InnerBeginFill(object state)
 {
     try
     {
         using (reader = new ForwardExcelReader(base.DataProvider.DataSourceFile))
         {
             reader.Open();
             sheet1 = reader.Activate(1) as ForwardReadWorksheet;
             sheet2 = reader.Activate(2) as ForwardReadWorksheet;
             Hashtable table = ReadColumnSheet();
             tableList = ReadRowSheet(table);
             for (CurrentRowIndex = 0; CurrentRowIndex < tableList.Count; CurrentRowIndex++)
             {
                 _asyncObject.Reset();
                 bool isBusy = true;
                 while (isBusy)
                 {
                     System.Threading.Thread.Sleep(100);
                     base.Browser.Invoke((Action)(() => { isBusy = base.Browser.IsBusy; }));
                 }
                 base.Browser.Invoke((Action)(() =>
                 {
                     base.Browser.Navigate(base.StartPageUri);
                 }));
                 base.BeginFill();
                 _asyncObject.Wait();
             }
             base.OnFinished(EventArgs.Empty);
             WebFillManager.ShowMessageBox("填报已完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
     catch (Exception ex)
     {
         if (ex is System.Threading.ThreadAbortException)
         {
             return;
         }
         else
         {
             WebFillManager.ShowMessageBox(ex.Message, "错误", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
         }
     }
 }
Beispiel #3
0
 internal void ClickSaveButton(IntPtr saveButton, bool selectNextNode)
 {
     if (saveButton != IntPtr.Zero)
     {
         ApiSetter.ClickButton(saveButton, _handle, (state) =>
         {
             SaveDialog_3C fill = FillDialog_3C.GetFillDialog(CCCWindowType.SaveWindow, this, processId) as SaveDialog_3C;
             if (string.IsNullOrEmpty(fill.Message) || fill.Message.Contains("保存成功") == false)
             {
                 _state = FillState.Waiting;
                 if (_asyncHandle != null)
                 {
                     _asyncHandle.Reset();
                 }
             }
             else
             {
                 fill.DoFillWork(null);
                 if (selectNextNode)
                 {
                     this.SelectNextNode(true);
                 }
             }
         }, null);
     }
     else
     {
         _state = FillState.Waiting;
         if (_asyncHandle != null)
         {
             _asyncHandle.Reset();
         }
     }
 }