示例#1
0
 public static void CrossThreadCalls(this Control ctl, ThreadStart del)
 {
     try
     {
         if (del == null)
         {
             return;
         }
         if (ctl.InvokeRequired)
         {
             ctl.Invoke(del, null);
         }
         else
         {
             del();
         }
     }
     catch (Exception err)
     {
         MessageBox.Show("CTL:" + ctl.Text + "\r\nDEL:" + del.ToString() + "\r\n" + err.Message.ToString(), "CrossThreadCall");
     }
 }
示例#2
0
 void StartRun(ThreadStart start)
 {
     builder = new StringBuilder();
     new Thread(() => {
         lock (this) {
             try {
                 if (start != null)
                 {
                     start();
                 }
             } catch (System.Exception ex) {
                 Logger.error(string.Format("Run is Error method : {0}  error : {1}", start.ToString(), ex.ToString()));
             }
         }
         EndRun();
     }).Start();
 }