zoukankan      html  css  js  c++  java
  • .NET异步方法调用的例子

    这样写的好处是TestMethod在同步和异步线程下,都能顺利地被调用.

    MethodInvoker和Action都是.NET 2.0内置的Delegate类型,让你方法地回调一个没有参数的方法,而不用自己去定义新的Delegate.

    private void button1_Click(object sender, EventArgs e)
    {
        Thread t = new Thread(new ThreadStart(TestMethod));
        t.Start();
    }
    
    public void TestMethod()
    {
        if (this.InvokeRequired)
        {
            //MethodInvoker handler = new MethodInvoker(TestMethod);
            Action handler = new Action(TestMethod);
            
            this.Invoke(handler, null);
        }
        else
        {
            this.Text = "Async Invoked.";
            MessageBox.Show("Async Invoked");
        }
    }

    .NET 3.0中有一个Action<T>,支持四个Generic的参数.

    System.Action<int, int, int, int> handler2 = new Action<int, int, int, int>(Calc);
                    this.Invoke(handler2, 1, 2, 3, 4);
    public void Calc(int a, int b, int c, int d)
            {
                var r = a + b + c + d;
            }
  • 相关阅读:
    使用beanUtils操纵javabean
    反射
    JDK5.0新特性(静态导入、自动装箱/拆箱、增强for循环、可变参数、枚举、泛形)
    Junit测试框架
    Eclipse常用快捷键
    Linux最全基础指令
    log file sync等待事件
    数据库要不要部署在docker容器内?
    MySQL启动报错-The server quit without updating PID file[FAILED]mysql/mysql.pid).
    MySQL数据库启动异常-[ERROR] [MY-011971]
  • 原文地址:https://www.cnblogs.com/rockniu/p/1595031.html
Copyright © 2011-2022 走看看