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");
            }
  • 相关阅读:
    Object类-try-catch-finally-throw-throws-自定义异常
    修饰符-包-内部类-代码块执行顺序
    ZOJ 1241 Geometry Made Simple
    ZOJ 1029 Moving Tables
    ZOJ 1047 Image Perimeters
    ZOJ 1024 Calendar Game
    动态规划 -- 01背包问题
    Kmeans算法的应用实例(Matlab版本)
    Matlab优化存储器读写来改善程序性能
    struct和typedef struct的区别
  • 原文地址:https://www.cnblogs.com/liulun/p/1589523.html
Copyright © 2011-2022 走看看