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;
            }
  • 相关阅读:
    IQueryable & IEnumberable 区别
    修改ScriptBundle 生成顺序
    使用C#的HttpWebRequest模拟登陆网站
    XMLHttpRequest 对象
    【.Net平台下插件开发】-MEF与MAF初步调研
    MVC+UnitOfWork+Repository+EF 之我见
    关于Repository模式
    MVC中的Repository模式
    MVC Repository模式
    从Membership 到 .NET4.5 之 ASP.NET Identity
  • 原文地址:https://www.cnblogs.com/rockniu/p/1595031.html
Copyright © 2011-2022 走看看