zoukankan      html  css  js  c++  java
  • Winform 异步调用

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    using System.Collections;
    using System.Threading;
    using System.Threading.Tasks;
    namespace WorkFlow
    {
        public partial class Server : Form
        {
            private delegate void FlushClient();//代理
            Thread thread = null;
            int counter = 0;
            public Server()
            {
                InitializeComponent();
            }
            /// <summary>
            /// 加载load事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Server_Load(object sender, EventArgs e)
            {
                thread = new Thread(CrossThreadFlush);
                thread.IsBackground = true;
                thread.Start();
            }
            private void CrossThreadFlush()
            {
                while (true)
                {   //将sleep和无限循环放在等待异步的外面
                    Thread.Sleep(1000);
                    ThreadFuntion();
                }
            }
            /// <summary>
            /// 获取数据
            /// </summary>
            /// <returns></returns>
            public void ThreadFuntion()
            {
                if (this.dtReadList.InvokeRequired)//等待异步
                {
                    FlushClient fc = new FlushClient(ThreadFuntion);
                    this.Invoke(fc); //通过代理调用刷新方法
                }
                else
                {
                    counter += 1;
                    int index = this.dtReadList.Rows.Add();
                    this.dtReadList.Rows[index].Cells[0].Value = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
                    this.dtReadList.Rows[index].Cells[1].Value = counter;
                }
            }
        }
    }
  • 相关阅读:
    设计模式之责任链模式(Chain of Responsibility )
    Cubieboard2裸机开发之(二)板载LED交替闪烁
    Cubieboard2裸机开发之(一)点亮板载LED
    A20(Cubieboard2)启动过程浅析
    入手Cubieboard2之制作最小Linux系统
    ARM Linux启动代码分析
    Linux设备驱动剖析之Input(四)
    Linux设备驱动剖析之Input(三)
    Linux设备驱动剖析之Input(二)
    Linux设备驱动剖析之Input(一)
  • 原文地址:https://www.cnblogs.com/dullbaby/p/4329391.html
Copyright © 2011-2022 走看看