zoukankan      html  css  js  c++  java
  • c# 多线程简化

    编译器自动推断出ParameterizedThreadStart委托,因为Go方法接收一个单独的object参数,就像这样写:

    1

    2

    Thread t = new Thread (new ParameterizedThreadStart (Go));

    t.Start (true);

    ParameterizedThreadStart的特性是在使用之前我们必需对我们想要的类型(这里是bool)进行装箱操作,并且它只能接收一个参数。

      一个替代方案是使用一个匿名方法调用一个普通的方法如下:

    1

    2

    3

    4

    5

    static void Main() {

      Thread t = new Thread (delegate() { WriteText ("Hello"); });

      t.Start();

    }

    static void WriteText (string text) { Console.WriteLine (text); }

      优点是目标方法(这里是WriteText),可以接收任意数量的参数,并且没有装箱操作。不过这需要将一个外部变量放入到匿名方法中,向下面的一样:

    1

    2

    3

    4

    5

    6

    7

    static void Main() {

      string text = "Before";

      Thread t = new Thread (delegate() { WriteText (text); });

      text = "After";

      t.Start();

    }

    static void WriteText (string text) { Console.WriteLine (text); }

  • 相关阅读:
    Boot-Repair&usb_repair
    Introducing ASLR for FreeBSD
    node.js操作Cookie
    Docker常见仓库MySQL
    Docker常见仓库CentOS
    Docker常见仓库Ubuntu
    Docker常见仓库Node.js
    Docker常见仓库WordPress
    Docker常见仓库Nginx
    Docker命令查询
  • 原文地址:https://www.cnblogs.com/embaobao/p/10720833.html
Copyright © 2011-2022 走看看