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


相关推荐

  • 数据结构之图的基本概念建议收藏

    一图的定义定义:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。在图中需要注意的是:(1)

    2021年12月19日
    54
  • vue 中 Promise 使用方法

    vue 中 Promise 使用方法1.Promise基本概念:Promise是一个构造函数,所以可以new出一个Promise的实例;在Promise上有两个函数resolve(成功之后的回调函数)和reject(失败后的回调函数);在Promise构造函数的prototype属性上,有一个.then()方法。所以只要是Promise构造函数创建的实例,都可以访问到.then()方法;Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的异步操作。Promise创建

    2022年6月15日
    253
  • yuv420p 详解_图文详解YUV420数据格式

    一.YUV格式与RGB格式的换算RGB转换成YUVY=(0.257*R)+(0.504*G)+(0.098*B)+16Cr=V=(0.439*R)-(0.368*G)-(0.071*B)+128Cb=U=-(0.148*R)-(0.291*G)+(0.439*B)+128YUV转换成RGBB=…

    2022年4月9日
    84
  • 医疗大数据平台的主流解决方案

    医疗大数据平台的主流解决方案多源异构数据汇聚分发系统:通过数据汇集和分发服务引擎,按照统一的数据格式和接口规范采集来自于不同厂家、不同设备类型、不同数据格式、不同传输协议的体征数据,然后进行数据存储,最后通过消息开放服务中间件实时分发至电子健康档案系统。   统一资源池的电子健康档案系统:电子健康档案系统是实施医疗信息 化管理和提供个性化医护服务的核心,它以用户或患者为中心,建立人口统计信息、既往病史、健康因素、家…

    2022年5月5日
    40
  • stopwords.txt中英文数据集,四川大学机器智能实验室停用词库,哈工大停用词表,中文停用词表,百度停用词表百度网盘下载

    stopwords.txt中英文数据集,四川大学机器智能实验室停用词库,哈工大停用词表,中文停用词表,百度停用词表百度网盘下载今天找stopwords.txt数据集找了好长时间,真是气死了,好多都是需要金币,这数据集不是应该共享的么。故搜集了一些数据集,主要包括四川大学机器智能实验室停用词库,哈工大停用词表,中文停用词表,百度停用词表和一些其他的stopword.text。最后用python将这些数据集合并成一个完整的数据集stopword.txt。百度网盘地址在链接:https://pan.baidu.com/s/1KBkOzYk-wRYaWno6HSOE9g提取码:4sm6文件不是很大可以直接下载。下面是详细的目录。

    2022年6月24日
    26
  • 小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]

    小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]前台代码wxml:<buttonbindtap=’chooseImg’>选择图片</button>//图片选择<view><imagesrc='{{img_l}}’bindtap=’preview_img’></image></view>//图片预览<buttonbindtap=’up_img’…

    2022年6月17日
    48

发表回复

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

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