Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C#之线程ParameterizedThreadStart[通俗易懂]

C#之线程ParameterizedThreadStart[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-14 11:25:55
发布于 2022-09-14 11:25:55
3690
举报

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

ParameterizedThreadStart

class Program { static void Main(string[] args) { Work work = new Work();

//两种实例化委托的方法; //ParameterizedThreadStart ParameterizedThreadStartDelegate = new ParameterizedThreadStart(work.DoWork); ParameterizedThreadStart ParameterizedThreadStartDelegate = work.DoWork; Thread thread = new Thread(ParameterizedThreadStartDelegate); thread.Start(5); //参数 Console.ReadKey(); } }

public void DoWork(Object t) { for (int i = 0; i <= (int)t; i++) { Console.WriteLine(“请打印{0}\n”, i); } }

PS:ParameterizedThreadStart和ThreadStart不要重新定义委托。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ParameterizedThreadStart 实例化[通俗易懂]
今天用到了ParameterizedThreadStart 的实例化对象,但是总提示没有与委托匹配的重载,网上搜索了很多,终于明白什么原因了,在此记录下方便以后查阅。
全栈程序员站长
2022/09/14
5880
ParameterizedThreadStart 实例化[通俗易懂]
构造有参数的线程ParameterizedThreadStart
构造有参数的线程就得需要用到ParameterizedThreadStart,查看从元数据可以看出ParameterizedThreadStart是一个委托,参数类型必须是Object类型。
全栈程序员站长
2022/09/14
4330
构造有参数的线程ParameterizedThreadStart
C# 多线程 ThreadStart和ParameterizedThreadStart
线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。每个线程都定义了一个独特的控制流。如果应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。
全栈程序员站长
2022/09/14
5600
在C#中ParameterizedThreadStart和ThreadStart区别
上面我们用定义了一个ThreadStart类型的委托 , 这个委托制定了线程需要执行的方法: Calculate,在这个方法里计算了一个直径为0.5的圆的周长,并输出.这就构成了最简单的多线程的例子,在很多情况下这就够用了,然后 ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数,这显然是个很大的不足,为了弥补这个缺陷,聪明的程序员想出了许多好的方法,我们将在需 要传递多个参数一节中进行介绍,这里我们先介绍.Net为了解决这个问题而设定的另外一个委托:就是ParameterizedThreadStart
全栈程序员站长
2022/09/14
6900
C# 多线程详细讲解「建议收藏」
进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。
全栈程序员站长
2022/11/01
2K0
C#多线程系列(1):Thread
本篇是《多线程入门和实践(初级)》的第一篇,也是大家相当熟悉和不屑的的最简单的入门部分。作为系列文章,笔者将从最简单的部分开始,与各位伙伴一起不断学习和探究 C# 中的多线程。
痴者工良
2021/04/26
1.4K0
C# 多线程编程 ThreadStart ParameterizedThreadStart
在实例化Thread的实例,需要提供一个委托,在实例化这个委托时所用到的参数是线程将来启动时要运行的方法。在.net中提供了两种启动线程的方式,一种是不带参数的启动方式,另一种是带参数的启动的方式。      不带参数的启动方式      如果启动参数时无需其它额外的信息,可以使用ThreadStart来实例化Thread,如下面的代码:
全栈程序员站长
2022/09/14
4890
C#多线程委托ParameterizedThreadStart应用
C#使用线程时首先需要创建线程,使用Thread类构造函数创建实例需要用到ThreadStart委托或者ParameterizedThreadStart 委托创建 Thread 类的实例,ThreadStart 委托只能用于无返回值、无参数的方法,ParameterizedThreadStart 委托则可以用于带参数的方法。线程不会直接运行,直至调用Start()方法时为止。
zls365
2020/08/19
1.5K0
C#多线程委托ParameterizedThreadStart应用
C#多线程锁「建议收藏」
C#开发中会常遇到多线程的问题,当多个线程同时对同一个资源进行操作时,就需要注意线程同步的问题。线程如果不同步,可能会造成与预计不同的结果,这时就要对资源进行上锁。当多个线程操作一个全局变量时,如果对全局变量进行上锁,则当一个线程访问这个全局变量时,另一个线程并不能去访问这个全局变量,只有等解锁资源后,其余线程才有机会去访问。这就保证了线程同步。下面是示例: 两个线程fun1和fun2同时对队列进行入队操作,当入队数量比较小时,可能没有问题,当数量较大时,会发现队列中元素个数并不是两个线程入队元素的和。
全栈程序员站长
2022/08/31
6190
多线程编程01
线程可以被描述为它所处的进程中的一个微进程,它拥有起点,执行的顺序系列和一个终点。
Echo_Wish
2023/11/30
1720
.NET中的异步编程上
开篇 异步编程是程序设计的重点也是难点,还记得在刚开始接触.net的时候,看的是一本c#的Winform实例教程,上面大部分都是教我们如何使用Winform的控件以及操作数据库的实例,那时候做的基本都是数据库的demo,数据量也不大,程序在执行的时候基本上不会出现阻塞的情况。随着不断的深入.net,也开始进入的实战,在实际的项目,数据量往往都是比较大,特别是在大量的数据入库以及查询数据并进行计算的时候,程序的UI界面往往卡死在那里,发生了阻塞,这时候就需要对计算时间限制的过程进行异步处理,让UI线程继续相应
逸鹏
2018/04/10
1.3K0
.NET中的异步编程上
在C#中ParameterizedThreadStart和ThreadStart区别
不需要传递参数,也不需要返回参数     我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下:   ThreadStart threadStart=new ThreadStart(Calculate);  Thread thread=new Thread(threadStart);  thread.Start();       public void Calculate()      {   double Diameter=0.5;   Console.Write("The Area Of 
跟着阿笨一起玩NET
2018/09/18
1.3K0
c#之线程总结(一)
在我们做项目的时候会经常用到线程,但线程也不是万能的,用线程需要注意的东西也很多,自己做了一下总结 这次总结主要说三个部分 1 线程之委托方法 2 给线程传参 3 三种方法控制线程同步 我们先看一下小例子: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ThreadMethod { class Progr
lpxxn
2018/01/31
4670
c#之线程总结(一)
C#基础知识回顾--线程传参
  在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数,ThreadStart委托接收的函数不能有参数, 也不能有返回值。如果希望传递参数给执行函数,则可以使用带参数的ParameterizedThreadStart委托, public delegate void ParameterizedThreadStart(Object obj) 可以将要传送给线程函数的信息封装为一个对象,然后调用Thread类的以下构造函数  public Thread (Parameterized
hbbliyong
2018/03/05
8740
干货分享:详解线程的开始和创建
代码下载 Thread_博客园_cnblogs_jackson0714.zip 第一篇~第三篇的代码示例: 源码地址:https://github.com/Jackson0714/Threads 一、
悟空聊架构
2018/05/18
6400
C#多线程
根据上一节中http://www.cnblogs.com/aehyok/archive/2013/05/02/3054615.html对多线程的入门了解。本节就来探讨一下简单的使用多线程。
aehyok
2018/09/11
5510
C#多线程
C#多线程同步事件及等待句柄
最近捣鼓了一下多线程的同步问题,发现其实C#关于多线程同步事件处理还是很灵活,这里主要写一下,自己测试的一些代码,涉及到了AutoResetEvent 和 ManualResetEvent,当然还有也简要提了一下System.Threading.WaitHandle.WaitOne 、System.Threading.WaitHandle.WaitAny和System.Threading.WaitHandle.WaitAll ,下面我们一最初学者的角度来看,多线程之间的同步。
全栈程序员站长
2022/09/14
1.2K0
线程详解——c#
使用线程,我们需要引用System.Threading命名空间。创建一个线程最简单的方法就是在 new 一个 Thread,并传递一个ThreadStart委托(无参数)或ParameterizedThreadStart委托(带参数),如下:
vv彭
2020/12/16
4360
线程详解——c#
C# 多线程编程
1.如果只是启动一个新线程,不需要传入参数,不需要线程返回结果,可以直接使用ThreadStart(),
全栈程序员站长
2022/09/07
6380
ManualResetEvent的理解和使用[通俗易懂]
可见,没有信号时,WaitOne()后面的语句都不执行(被阻塞),当Set()释放信号后,所有阻塞的线程都开始继续执行。
全栈程序员站长
2022/09/09
2940
ManualResetEvent的理解和使用[通俗易懂]
相关推荐
ParameterizedThreadStart 实例化[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档