多线程委托回调

简介:  public void updateme()  程序调用这个函数 <br>        {<br>            lblTime.Text = "正在读取数据..."; <br>            if (isruning) return;<br>            isruning = true;<br>            this.btnDo.Enabled = f
 public void updateme()  程序调用这个函数
        {
            lblTime.Text = "正在读取数据...";
            if (isruning) return;
            isruning = true;
            this.btnDo.Enabled = false;
            lv.Items.Clear();  设置一些数据 , 比如提示或者 按钮等. 查询期间是不允许操作的.  
            System.Threading.ThreadPool.QueueUserWorkItem( _updateme  );//请求一个线程池中的线程 , 让他完成一个操作 这个操作_updateme  .
        }
          public delegate void d_updateme(); 用于回调的委托 .
          public void _updateme(object state )     供给线程调用的函数.
        {
            AsyncCallback ac=new AsyncCallback(updateme_);           创建一个回调 . 回调函数updateme_        
            GetALog gal = new GetALog(BLL.Traffic.GetALog);把要执行的代码创建到委托里 .
            IAsyncResult result = gal.BeginInvoke(LogDateTime,  _VDI , ac, gal);         开始执行该委托.  
        }
        public void updateme_(IAsyncResult iar) ///这里是回答内容.
        {
            GetALog gal = (GetALog)iar.AsyncState;委托转换 .
            DataTable t = gal.EndInvoke(iar); 调用结束委托方法,取得返回值 .
            this.BeginInvoke(new duupdateme(uupdateme), t); 调用窗体中的uupdateme函数 ,使得使用t值,
           这个地方我没太注意, 我不知道回调是由窗体线程还是刚才线程池中的线程.
        }
        delegate void duupdateme(DataTable t); //委托 .

        private void uupdateme(DataTable t )
        {
这个函数中就是处理数据的.

}
目录
相关文章
|
C++
C++两种线程模式:委托和继承(附示例)
继承方式实现简单,请参见:https://github.com/eyjian/mooon/blob/master/common_library/include/mooon/sys/thread.
816 0
|
安全
多线程+委托的安全访问(invoke)
1.声明方法 2.声明委托类型 3.创建委托对象 4.启动线程 5.在线程调用的方法里通过Control的Invoke方法执行委托 public Form1() { InitializeComponent(); //TextBox.
751 0
socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅
1.socket 通信传输汉字的方法:Encoding.GetEncoding("GB2312").GetString(Receivebyte) 发送接收都这样转化 直接上程序   public partial class Form1 : Form { pub...
799 0
多线程,异步委托,同步委托几种方式的区别
Code        public delegate void DoThingsDelegate();        private void Window_Loaded(object sender, RoutedEventArgs e)        {            //通过子线程调...
868 0
|
2天前
|
存储 安全 Java
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
6 0
|
2天前
|
算法 安全 Linux
【探索Linux】P.20(多线程 | 线程互斥 | 互斥锁 | 死锁 | 资源饥饿)
【探索Linux】P.20(多线程 | 线程互斥 | 互斥锁 | 死锁 | 资源饥饿)
5 0
|
2天前
|
存储 安全 Linux
【探索Linux】P.19(多线程 | 线程的概念 | 线程控制 | 分离线程)
【探索Linux】P.19(多线程 | 线程的概念 | 线程控制 | 分离线程)
5 0
|
10天前
|
监控 安全 Java
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
|
10天前
|
缓存 安全 Java
多线程--深入探究多线程的重点,难点以及常考点线程安全问题
多线程--深入探究多线程的重点,难点以及常考点线程安全问题