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)
上一篇 2022年7月15日 下午1:46
下一篇 2022年7月15日 下午2:00


相关推荐

  • Oracle Sequence Cache 参数说明[通俗易懂]

    Oracle Sequence Cache 参数说明[通俗易懂]之前整理的一篇文章:   ORACLESEQUENCE介绍http://blog.csdn.net/tianlesoftware/archive/2009/10/30/4745039.aspx 之前整理的一篇文章。那是还是写blog初期的作品。2009年10月份的。转眼一年,写Blog也比以前成熟了很多。 一.理论知识先看一个创建Sequence的语句:SQL>creates

    2022年10月9日
    6
  • 计算机图形学光栅化实验_光栅化算法

    计算机图形学光栅化实验_光栅化算法光栅化光栅化的任务将在投影变换中得到的正则立方体显示在屏幕上屏幕screen像素(pixels)的集合。屏幕的大小使用分辨率(resolution)来刻画。经典的光栅显示设备像素pixel像素是一个具有统一颜色的小立方体颜色由三部分组成red,green,blue屏幕空间​ 屏幕被划分成一个个正方体,称为像素。像素使用坐标(x,y)(x,y)(x,y)来表示,其中心是(x+0.5,y+0.5)(x+0.5,y+0.5)(x+0.5,y+0.5),

    2022年10月21日
    5
  • startService() 过程

    startService() 过程

    2021年6月6日
    102
  • actionlistener java,Java ActionListener接口

    actionlistener java,Java ActionListener接口本文概述每当你单击按钮或菜单项时 都会通知 JavaActionLi 会针对 ActionEvent 进行通知 可在 java awt event 包中找到 ActionListen 接口 它只有一种方法 actionPerfor actionPerfor 方法每当你单击注册的组件时 都会自动调用 actionPerfor 方法 publicabstra

    2026年3月19日
    2
  • matlab treeview,treeview控件

    matlab treeview,treeview控件高分在线等 C 中如何给 treeview 控件上的节点前添比如有一 treeview1 控件 需要在其所有节点前均加一静态小图标 所有节点我也新手 正好刚用过这功能 如下 1 到工具箱中拖一个 imagelist 控件 然后这个控件的属性栏中有个 Images 属性 点击这个属性右侧的按钮 就会出来一个对话框 点击 添加 加入你想要的图片 2 添加图片到树形控件的代码如下 我为了演示 如何用 matla

    2026年3月20日
    3
  • iPAD越狱后下载激活成功教程版的pad软件方法总录[通俗易懂]

    iPAD越狱后下载激活成功教程版的pad软件方法总录[通俗易懂]声明:本文所说的安装软件方法都不是原创,都是前人的经验,只不过为了方便大家,做一个整理。一、事前的准备工作1、还是先说越狱,网上越狱的方法不止一种,建议按照下文操作办法(在ipad上操作)简单说就两步(1)用safari登陆www.jailbreakme.co

    2026年1月31日
    6

发表回复

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

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