.NET中ThreadStart和ParameterizedThreadStart区别「建议收藏」

.NET中ThreadStart和ParameterizedThreadStart区别「建议收藏」ThreadStart:       ThreadStart这个委托定义为voidThreadStart(),也就是说,所执行的方法不能有参数。ThreadStartthreadStart=newThreadStart(Calculate);Threadthread=newThread(threadStart);thread.Start();publicvoid

大家好,又见面了,我是你们的朋友全栈君。



ThreadStart:

        ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数。

ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread(threadStart);thread.Start();public void Calculate(){ double Diameter=0.5; Console.Write("The Area Of Circle with a Diameter of {0} is {1}"Diameter,Diameter*Math.PI);}

        定义了一个ThreadStart类型的委托,这个委托制定了线程需要执行的方法: Calculate,在这个方法里计算了一个直径为0.5的圆的周长,并输出.这就构成了最简单的多线程的例子。

ParameterThreadStart:

        ParameterThreadStart的定义为void ParameterizedThreadStart(object state),使用这个这个委托定义的线程的启动函数可以接受一个输入参数,具体例子如下 :

ParameterizedThreadStart threadStart=new ParameterizedThreadStart(Calculate)
Thread thread=new Thread() ;
thread.Start(0.9);
public void Calculate(object arg)
{
double Diameter=double(arg);
Console.Write("The Area Of Circle with a Diameter of {0} is {1}"Diameter,Diameter*Math.PI);
}

          Calculate方法有一个为object类型的参数,虽然只有一个参数,而且还是object类型的,使用的时候尚需要类型转换,但是好在可以有参数了,并且通过把多个参数组合到一个类中,然后把这个类的实例作为参数传递,就可以实现多个参数传递.如下所示:

class AddParams
{
    public int a, b;

    public AddParams(int numb1, int numb2)
    {
      a = numb1;
      b = numb2;
    }
}
#endregion

class Program
{
    static void Main(string[] args)
    {
      Console.WriteLine("***** Adding with Thread objects *****");
      Console.WriteLine("ID of thread in Main(): {0}",
        Thread.CurrentThread.ManagedThreadId);

      AddParams ap = new AddParams(10, 10);
      Thread t = new Thread(new ParameterizedThreadStart(Add));
      t.Start(ap);
      Console.ReadLine();
    }

    #region Add method
    static void Add(object data)
    {
      if (data is AddParams)
      {
        Console.WriteLine("ID of thread in Main(): {0}",
          Thread.CurrentThread.ManagedThreadId);

        AddParams ap = (AddParams)data;
        Console.WriteLine("{0} + {1} is {2}",
          ap.a, ap.b, ap.a + ap.b);
      }
    }
    #endregion
}
}

出处:http://www.cnblogs.com/qixuejia/archive/2015/02/09/4281079.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159650.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用C++程序理解汉字的机内码表示

    用C++程序理解汉字的机内码表示汉字的编码是很多初学者不容易搞不明白的事情 最早的汉字字符集是 GB2312 80 收入汉字 6763 个 符号 715 个 总计 7478 个字符 大陆普遍使用的简体字字符集 本文借助于一个能输出这些字符的简单的 C 程序 体验汉字字符的编码 先简介一下 GB2312 80 的概况 1 区位码 每个汉字及符号都有一个区位码 即每个汉字有一个区号 两位十进制 和一个位号 两位十进制 一共分了 94 个区 每

    2025年8月24日
    86
  • 分布式系统设计权衡之CAP(一致性,可用性,分区容错性)[通俗易懂]

    分布式系统设计权衡之CAP(一致性,可用性,分区容错性)[通俗易懂]https://blog.csdn.net/Sun_P0/article/details/50221787写在最前:1.为什么学习并记录分布式设计理念一系列相关的东西在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是很多人理解的可用性,一致性等等问题,都是自己拍脑袋想的,或者根本和最原始表达的意思就不…

    2022年7月25日
    12
  • ubuntu下pycharm安装_pycharm激活成功教程版linux

    ubuntu下pycharm安装_pycharm激活成功教程版linuxlinux中安装pycharm的方法:1、获取PyCharm你可以通过下面网站获取PyCharm。屏幕中央有一个很大的’Download’按钮。https://www.jetbrains.com/pycharm/download/#section=linux你可以选择下载专业版或者社区版。如果你刚刚接触Python编程那么推荐下载社区版。然而,如果你打算发展到专业化的编程,那么专业版…

    2022年10月18日
    2
  • linux的 intellij idea激活码-激活码分享

    (linux的 intellij idea激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html76VF8VOVJM-eyJsa…

    2022年4月1日
    149
  • 时间序列预测(四)—— LSTM模型「建议收藏」

    时间序列预测(四)——LSTM模型文章链接(一)数据预处理(二)AR模型(自回归模型)(三)Xgboost模型(四)LSTM模型(五)Prophet模型(自回归模型)模型原理  LSTM(Long-shorttimememory,LSTM)模型,亦即是长段时间模型。LSTM的原理这篇博客讲的十分的清楚,建议英语好的小伙伴直接去看原文,我这里就大致的翻译精简一下。  人类天…

    2022年4月11日
    355
  • [Protel99SE]打印PDF「建议收藏」

    [Protel99SE]打印PDF「建议收藏」写在前面Protel仍然占据着不少工程师的手心,最近在接触一些产品转生产的事宜。从研发拿到一些工程资料后,需要转化出来给生产使用。于是就遇上了将Protel设计文件输出成PDF文件的问题。准备工作想要打印输出PDF文件,最方便的就是装一个PDF打印机。推荐安装Foxit阅读器,自动全安装PDF打印机。之后用任何软件做文档,想输出PDF文件,可以直接调用打印功能,然后打印到Fox

    2022年5月29日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号