1.引用
using System.Threading.Tasks; using System.Threading;
2.时间控件+事件
/// <summary> /// 构造函数 /// </summary> public Main_Form() { InitializeComponent(); //时间控件绑定事件 this.timer_sync.Tick += timer_sync_Tick; }
3.同步订单时间控制器事件
/// <summary> /// 同步订单时间控制器事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer_sync_Tick(object sender, EventArgs e) { timer_sync.Enabled = false; try { StatisticsData(); } catch (Exception ex) { MessageBox.Show("服务已停止,错误:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } timer_sync.Enabled = true; }
4.循环创建线程
//定义委托
private delegate void MyInvokeDelegate(string name);
private void StatisticsData() { DataTable dt = X2_Frdimensioncallogo.GetFrdimensioncalInfo(); foreach (DataRow item in dt.Rows) { string yearmonth = item["yearmonth"].ToString(); //线程池方式 ThreadPool.QueueUserWorkItem(new WaitCallback(RunStatistics), yearmonth); } }
5.程序实现代码
private void RunStatistics(object para) { string yearmonth = (string)para; //开始计时 Stopwatch sw = new Stopwatch(); sw.Start(); //以委托的方式把信息回写到输出控件 this.Invoke(new MyInvokeDelegate(RefSubmitText), "年月"); //计时结束 sw.Stop(); TimeSpan ts2 = sw.Elapsed; }
6.把信息输出到控件
/// <summary> /// 显示信息 /// </summary> /// <param name="o"></param> private void RefSubmitText(object o) { //rch_text是TextBox控件 this.rch_text.AppendText(o.ToString()); this.rch_text.AppendText(Environment.NewLine); this.rch_text.ScrollToCaret(); }
浙公网安备 33010602011771号