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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html中div加滚动条

    html中div加滚动条div加滚动条的两种方法:一、<divstyle=”overflow:scroll;width:400px;height:400px;”></div>记住宽和高一定要设置噢,否则不成的不过在不超出时,会有下面的滚动条,所以不是最好的选择二、<divstyle=”overflow-y:auto;overflow-x:auto;…

    2022年7月12日
    44
  • DataHub Java接入实时数据

    DataHub Java接入实时数据DataHubJava接入实时数据序言问题代码总结序言Datahub的相关介绍和优势,我在这里就不一一赘述,留个官方文档的连接([DataHub官方文档](https://help.aliyun.com/document_detail/47439.html?spm=a2c0j.8235941.654670.ddoc.26d91a22JWAbt9)),大家可以自己去看看。我想在这里记录的是…

    2025年5月28日
    6
  • echarts中国地图散点实现自定义动画

    echarts中国地图散点实现自定义动画echarts中国地图散点实现自定义动画

    2022年10月19日
    3
  • ACdream 1427 Nice Sequence

    ACdream 1427 Nice Sequence

    2022年1月7日
    61
  • python创意小作品代码_python浪漫表白源码

    python创意小作品代码_python浪漫表白源码这篇文章主要为大家详细介绍了python实现浪漫的烟花秀,具有一定的参考价值,感兴趣的小伙伴们可以参考一下无意中看到一段用Tkinter库写的放烟花的程序,就跟着跑了一遍。设计理念:通过让画面上一个粒子分裂为X数量的粒子来模拟爆炸效果。粒子会发生“膨胀”,意思是它们会以恒速移动且相互之间的角度相等。这样就能让我们以一个向外膨胀的圆圈形式模拟出烟花绽放的画面。经过一定时间后,粒子会进入“自由落体”阶…

    2022年9月23日
    7
  • pychrome激活码2021_通用破解码

    pychrome激活码2021_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    65

发表回复

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

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