• .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;
            }
  • 相关阅读:
    关于Linux内核版本
    什么是操作系统?
    进程三种基本状态
    Repo实践指南
    在TortoiseSVN/TortoiseGit中使用BeyondCompare进行差异对比
    Redis安装
    Outlook配置163邮箱
    Nginx安装
    MySQL字符串操作函数
    Java各种反射性能对比
  • 原文地址:https://www.cnblogs.com/rockniu/p/1595031.html
Copyright © 2020-2023  润新知