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;
            }
  • 相关阅读:
    常量
    语音合成技术(深度学习方法简介)
    在 Linux 上如何清除内存的 Cache、Buffer 和交换空间
    Bash Bang (!) commands(bash的“!”命令,重新运行前一个命令的全部或部分。)
    Ubuntu apt pip conda 代理设置
    rsync 远程数据同步
    设置 jupyter notebook 可远程访问
    ubuntu 挂载硬盘(GPT分区,大于2T的硬盘)
    用树结构构造一篇文章(待完成)
    数组切分(句子拼接)
  • 原文地址:https://www.cnblogs.com/rockniu/p/1595031.html
Copyright © 2011-2022 走看看