C#开发之——ParameterizedThreadStart(14.4)「建议收藏」

C#开发之——ParameterizedThreadStart(14.4)「建议收藏」一概述在C#语言中使用ParameterizedThreadStart创建进程,首先需要创建ParameterizedThreadStart委托的实例,然后再创建Thread类的实例<spanstyle=”color:#333333″>ParameterizedThreadStartpts=newParameterizedThreadStart(方法名);Threadt=newThread(pts);</span><!–more–>

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

一 概述

在C#语言中使用ParameterizedThreadStart创建进程,首先需要创建ParameterizedThreadStart委托的实例,然后再创建Thread类的实例

<span style="color:#333333">ParameterizedThreadStart pts=new ParameterizedThreadStart( 方法名 );
Thread t=new Thread(pts);</span>

<!–more–>

二 实例

2.1 实例一  创建一个方法输出0〜n的所有偶数,使用 ParameterizedThreadStart 委托调用该方法,并启动打印偶数的线程 

2.1.1 代码

<span style="color:#333333">class Program
{
    static void Main(string[] args)
    {
        ParameterizedThreadStart pts = new ParameterizedThreadStart(PrintEven);
        Thread t = new Thread(pts);
        t.Start(10);
    }
    //打印0~n中的偶数
    private static void PrintEven(Object n)
    {
        for(int i=0;i<=(int)n; i = i + 2)
        {
            Console.WriteLine(i);
        }
    }
}</span>

2.1.2 效果图

C#开发之——ParameterizedThreadStart(14.4)「建议收藏」

 

2.1.3 说明

  • 在使用ParameterizedThreadStart委托调用带参数的方法时,方法中的参数只能是object类型并且只能含有一个参数

  • 在启动线程时要在线程的Start()方法中为委托的方法传递参数

  • 如果需要通过ParameterizedThreadStart委托引用多个参数的方法,由于委托方法中的参数是object类型的,传递多个参数可以通过类的实例来实现

2.2 实例二  创建一个方法输出指定范围内数值的偶数,并创建线程调用该方法 

2.2.1 代码

<span style="color:#333333">class Program
{
    static void Main(string[] args)
    {
        ParameterizedThreadStart pts = new ParameterizedThreadStart(PrintEven);
        ParameterTest pt = new ParameterTest(1, 10);
        Thread t = new Thread(pts);
        t.Start(pt);
    }
    private static void PrintEven(Object n)
    {
        //判断n是否为ParameterTest 类的对象
        if(n is ParameterTest)
        {
            int beginNum = ((ParameterTest)n).beginNum;
            int endNum = ((ParameterTest)n).endNum;
            for(int i = beginNum; i <= endNum; i++)
            {
                if (i % 2 == 0)
                {
                    Console.WriteLine(i);
                }
            }
        }
    }
}
public class ParameterTest
{
    public int beginNum;
    public int endNum;
    public ParameterTest(int a,int b)
    {
        this.beginNum = a;
        this.endNum = b;
    }
}</span>

2.2.2 效果图

C#开发之——ParameterizedThreadStart(14.4)「建议收藏」

 

2.2.3 说明

  • 运行该程序,在控制台上将输出 1〜10 的偶数,即2、4、6、8、10

  • 从代码可以看出,通过为 ParameterTest 类中的字段赋值,并将其通过线程的 Start 方法传递给委托引用的方法 PrintEven,即可实现在委托引用的方法中传递多个参数的操作

 

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

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

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

相关推荐

  • tracert命令的原理是什么_tracert命令的原理

    tracert命令的原理是什么_tracert命令的原理1. Tracert 命令的原理与作用Tracert命令诊断实用程序通过向目标计算机发送具有不同生存时间的ICMP数据包,来确定至目标计算机的路由,也就是说用来跟踪一个消息从一台计算机到另一台计算机所走的路径。该诊断实用程序将包含不同生存时间 (TTL

    2022年9月24日
  • 二进制加减法运算法则例子_php运算符

    二进制加减法运算法则例子_php运算符如果采用与十进制减法相同的方法,那么从一个较大的二进制数中减去一个较小的无符号二进制数就很容易了。示例如下:01101(十进制数13)–00111(十进制数7)———-位0上的减法非常简单:01101–00111———-0下一个位置上执行(0-1),要向左边的相邻位借1,其结果是从2中减去1:01001–00111———-10再下一位上,又要向左…

    2022年9月25日
  • 用html设计一个动漫网站_HTML一个介绍的页面代码

    用html设计一个动漫网站_HTML一个介绍的页面代码HTML静态网页作业——海贼王主题网页设计制作6个页面(HTML+CSS)临近期末,你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从下手?网页要求的总数量太多?没有合适的模板?等等一系列问题。你想要解决的问题,在这篇博文中基本都能满足你的需求~原始HTML+CSS+JS页面设计,web大学生网页设计作业源码,这是一个不错的网页制作,画面精明,非常适合初学者学习使用。作品介绍1.网页作品简介方面:黑色通用的IT程序员资讯交流个人博客网站模板。喜欢的可以下载,文章页支

    2022年9月5日
  • sql报错未明确定义列_人的基本定义

    sql报错未明确定义列_人的基本定义当数据库根据字段名无法确定具体哪一列时,就会报未明确定义列的错误。如表中有相同的字段,然后要查询此表的重复的某一字段就会报未明确定义列的错误。有时候,一个sql语句没错,但根据sql语句执行的子表查询,就很有可能报错。selectt1.*fromt1;上例中的“sql语句”,可能会有重复的字段,sql语句没错,但像上例它作为子表查询的时候就会报未明确定义列的错误selectt.*from(selectt1.a,t1.afromt1)t…

    2022年10月5日
  • linux命令export什么意思_shell脚本执行oracle语句

    linux命令export什么意思_shell脚本执行oracle语句Linuxexport命令用法Linuxexport命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。export[-fnp][变量名称]=[变量设置值]参数说明:-f 代表[变量名称]中为函数名称。-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p 列出所有的shell赋予程序的环境变量。示例

    2022年9月7日
  • Java Web前端基础

    Java Web前端基础JavaWeb的学习是需要一定的计算机基础的,主要有前端基础和Java基础和一定的网络基础,这些基础知识还是需要掌握到一定的程度的。本文主要介绍前端接触,共包括HTML、CSS和JavaScript,学习的过程中,还是要多动手。

    2022年7月7日

发表回复

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

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