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;
            }
  • 相关阅读:
    关于使用JavaMail注册激活邮箱的注意点
    Maven Web报错:org.apache.jasper.JasperException: Unable to compile class for JSP
    IDEA的中文乱码问题
    深入了解Java动态代理与反射机制
    String、StringBuffer和StringBuilder的区别
    Java中HashCode()和equals()的关系
    Java中向下转型的意义
    局部内部类访问局部变量的问题
    Java内部类的应用场景
    Python os.rmdir() 方法
  • 原文地址:https://www.cnblogs.com/rockniu/p/1595031.html
Copyright © 2011-2022 走看看