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,即可实现在委托引用的方法中传递多个参数的操作

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 智能化让商业地产迎来新一轮黄金期

    智能化让商业地产迎来新一轮黄金期

  • 队列数据结构的典型应用_kafka优先级队列

    队列数据结构的典型应用_kafka优先级队列上一篇文章讲解了队列的相关知识,同时用代码实现了一个队列结构。那么本文将介绍一下另一种特殊的队列结构,叫做优先级队列。上一篇文章的跳转链接——公众号:Lpyexplore的编程小屋关注我,每天更新,带你在python爬虫的过程中学习前端,还有更多电子书和面试题等你来拿数据结构——优先级队列一、什么是优先级队列一、什么是优先级队列在了解了什么是队列以后,我们再来了解优先级队列,顾名思义,优先级队列就是在队列的基础上给每个元素加上了先后顺序,我们仍然拿排队买票的例子来讲解。…

  • Makefile中的patsubst函数[通俗易懂]

    $(patsubst原模式,目标模式,文件列表)如:在$(patsubst%.c,%.o,$(dir))中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o$(patsubstpattern,replacement,text)表示寻找text中符合模式pattern的字,用replacement替换他们。%是Makefile的通配符…

  • Windows8 IIS的安装

    Windows8 IIS的安装Windows8 IIS的安装

  • 阿里云cdn要备案吗_未备案域名cdn

    阿里云cdn要备案吗_未备案域名cdncdn需要备案么?需要的,使用国内的cdn节点,必须要有备案才可以做cdn,相关部门为防止cdn滥用,要求必须先备案。国内节点只要是大型数据中心的,基本都要备案。使用CDN产品是需要备案的,但不限制在提供商处备案,只要那么,无备案的网站就无法使用CDN了吗?作为这些网站的站长就只能选择免备案的CDN服务商了,而免备案的CDN加速基本节点都是在海外的。1、选择安全可靠的CDN市面上也有一些提供免费C…

  • 阿里云服务器 – mysql 链接

    阿里云服务器 – mysql 链接

    2020年11月19日

发表回复

您的电子邮箱地址不会被公开。

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