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();
}

 

posted on 2017-12-01 10:30  清风暮雨  阅读(148)  评论(0)    收藏  举报