zoukankan      html  css  js  c++  java
  • 多线程,异步委托,同步委托几种方式的区别

    Code
            public delegate void DoThingsDelegate();
            
    private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                
    //通过子线程调用方法  按钮事件可以执行
                Thread a = new Thread(new ThreadStart(DoSomeThing));
                a.IsBackground 
    = true;
                a.Start();

                
    //虽然是异步委托  但是按钮根本就显示不出来
                DoThingsDelegate dothingsEvent = new DoThingsDelegate(DoSomeThing);
                IAsyncResult result 
    = dothingsEvent.BeginInvoke(nullnull);
                dothingsEvent.EndInvoke(result);

                
    //同步委托就更不行了
                dothingsEvent.Invoke();

                
    //真正的异步委托  异步调用方法,与多线程相似
                IAsyncResult result = dothingsEvent.BeginInvoke(new AsyncCallback(DoThingEnd), null);

            }
            
    public static void DoSomeThing()
            {
                Console.WriteLine(
    "begin");
                Thread.Sleep(
    6000);
                Console.WriteLine(
    "end");
            }
            
    public static void DoThingEnd(IAsyncResult result)
            {
                Console.WriteLine(
    "end it");
            }
            
    private void button1_Click(object sender, RoutedEventArgs e)
            {
                MessageBox.Show(
    "11111");
            }
  • 相关阅读:
    神奇的C语言
    实现代码编辑器
    实现了一个简单的key-value存储系统
    一些官网说明
    苹果用户转入mate30,被恶心到了
    吐嘈一下乱用注入
    谈一下OOP的乱用现象
    mongo3.x ssl版安装文件
    再谈LRU双链表内存管理
    cocos在win平台exe无法使用 UserDefault 解决方法
  • 原文地址:https://www.cnblogs.com/liulun/p/1589523.html
Copyright © 2011-2022 走看看