parameterizedthreadstartC#关于线程的问题

parameterizedthreadstart  时间:2021-07-20  阅读:()

new ThreadStart中的方法如果有参数,该怎么写

楼主,你要是想带参数可以用这个 ParameterizedThreadStart pts = new ParameterizedThreadStart(ReceiveDate); Thread threadReceive = new Thread(pts); User user = new User(newClient); threadReceive.Start(user); 看第一行,我这段代码的ReceiveDate方法就是有一个参数的,使用ParameterizedThreadStart这个创建线程可以带一个参数

C#或C++使用信号量机制,编写一个含有两个进程,互斥更改变量n的小程序

卧槽这怎么做啊,C#里面对于共享内存的支持本来就有点蹩脚 两个进程更改同一个变量是想要闹怎样…… 先弄个线程的,实在不行要进程了之后用C++给你写个 using?System; using?System.Threading; class?Program { ????static?int?t; ????static?void?Main(string[]?args) ????{ ????????Semaphore?semaphore?=?new?Semaphore(1,?1); ????????ParameterizedThreadStart?ts?=?new?ParameterizedThreadStart(x?=> ????????{ ????????????Semaphore?s?=?(Semaphore)x; ????????????for?(int?i?=?0;?i?C# 多线程,ThreadStart()里面的方法带了参数就提示错误?线程操作主要用到Thread类,他是定义在System.Threading.dll下。

使用时需要添加这一个引用。

该类提供给我们四个重载的构造函数(以下引自msdn)。

Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。

Thread (ThreadStart) 初始化 Thread 类的新实例。

由 .NET Compact Framework 支持。

Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。

Thread (ThreadStart, Int32) 初始化 Thread 类的新实例,指定线程的最大堆栈大小。

由 .NET Compact Framework 支持。

我们如果定义不带参数的线程,可以用ThreadStart,带一个参数的用ParameterizedThreadStart。

带多个参数的用另外的方法,下面逐一讲述。

一、不带参数的 using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace AAAAAA { class AAA { public static void Main() { Thread t = new Thread(new ThreadStart(A)); t.Start(); Console.Read(); } private static void A() { Console.WriteLine("Method A!"); } } } 结果显示Method A! 二、带一个参数的 由于ParameterizedThreadStart要求参数类型必须为object,所以定义的方法B形参类型必须为object。

using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace AAAAAA { class AAA { public static void Main() { Thread t = new Thread(new ParameterizedThreadStart(B)); t.Start("B"); Console.Read(); } private static void B(object obj) { Console.WriteLine("Method {0}!",obj.ToString ()); } } } 结果显示Method B! 三、带多个参数的 由于Thread默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。

定义类的对象时候实例化这个属性,然后进行操作。

using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace AAAAAA { class AAA { public static void Main() { My m = new My(); m.x = 2; m.y = 3; Thread t = new Thread(new ThreadStart(m.C)); t.Start(); Console.Read(); } } class My { public int x, y; public void C() { Console.WriteLine("x={0},y={1}", this.x, this.y); } } } 结果显示x=2,y=3 四、利用结构体给参数传值。

定义公用的public struct,里面可以定义自己需要的参数,然后在需要添加线程的时候,可以定义结构体的实例。

//结构体 struct RowCol { public int row; public int col; }; //定义方法 public void Output(Object rc) { RowCol rowCol = (RowCol)rc; for (int i = 0; i < rowCol.row; i++) { for (int j = 0; j < rowCol.col; j++) Console.Write("{0} ", _char); Console.Write(" "); } }

vb.net怎么无线循环编

一般多开线程写无限循环行为。

//定义线程 Dim?th?As?New?Threading.Thread(New?Threading.ParameterizedThreadStart(AddressOf?test)) th.Start("aaa")//开始线程,可以传参//线程执行函数 Public?Sub?test(ob?As?Object) ???While?True ?????Console.WriteLine("线程正在运行中"?&?ob) ?????Threading.Thread.Sleep(1000) ???End?While End?Sub

C#关于线程的问题

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading;//导入使用线程管理的命名空间

namespace MyThread { class Program { private static int newTask(int ms)//定义方法(这是普通的定义,没什么特别,注意参数与委托参数一致就行) { Console.WriteLine("任务开始"); Thread.Sleep(ms);//当前线程睡眠 Random random = new Random(); int n = random.Next(10000); Console.WriteLine("任务完成"); return n;//当程睡眠ms毫秒后结束返回 }

private delegate int NewTaskDelegate(int ms);//定义委托,用于执行线程方法

static void Main(string[] args) { NewTaskDelegate task = newTask;//新建委托对象 IAsyncResult asyncResult = task.BeginInvoke(2000, null, null);//BeginInvoke方法.NET FrameWorks开辟并在多线程管理机制里执行多线程

// EndInvoke方法将被阻塞2秒 int result = task.EndInvoke(asyncResult);//在执行方法后获得线程返回的结果 Console.WriteLine(result); Console.Read();

} } } //以上主要理解BeginInvoke与EndInvoke及线程结果asyncResult

//与之比较的还有Invoke无返回值

//更深一点的还有线程方法回调

//看楼主理解吧.....不赘述了...

Megalayer新加坡服务器国际带宽线路测评

前几天有关注到Megalayer云服务器提供商有打算在月底的时候新增新加坡机房,这个是继美国、中国香港、菲律宾之外的第四个机房。也有工单询问到官方,新加坡机房有包括CN2国内优化线路和国际带宽,CN2优化线路应该是和菲律宾差不多的。如果我们追求速度和稳定性的中文业务,建议还是选择CN2优化带宽的香港服务器。这里有要到Megalayer新加坡服务器国际带宽的测试服务器,E3-1230配置20M国际带...

AkkoCloud(60元/月 ),英国伦敦CN2 1核 768 MB 内存 10 GB SSD 硬盘 600GB 流量 英国伦敦CN2 1核  1.5G  300Mbps

官方网站:https://www.akkocloud.com/AkkoCloud新品英国伦敦CN2 GIA已上线三网回程CN2 GIA 国内速度优秀.电信去程CN2 GIALooking Glass:http://lonlg.akkocloud.com/Speedtest:http://lonlg.akkocloud.com/speedtest/新品上线刚好碰上国庆节 特此放上国庆专属九折循环优惠...

无忧云:洛阳BGP云服务器低至38.4元/月起;雅安高防云服务器/高防物理机优惠

无忧云怎么样?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。一、无忧云官网点击此处进入无忧云官方网站二...

parameterizedthreadstart为你推荐
stm32视频教程求STM32从基础到应用的全套教程圣诞节网页制作我想在接下来的圣诞、元旦设计一个网站的宣传页面,哪里有好的公司帮我呢?淘气鸟八哥鸟忽然死了?物联卡官网移动物联卡怎么注册创业好项目论坛我想创业,有没有什么好的项目,福州创业QQ群有吗?或者是创业论坛?云图好看吗电影《云图》到底讲的什么,没看懂,高手来说一下。cf服务器爆满CF老是服务器爆满handoff怎么用iphone handoff怎么用无法清除dns缓存Windows无法清除DNS缓存联通玩电信游戏我联通的能进电信去玩吗
免费申请网页 securitycenter yardvps 512av ev证书 cdn加速原理 raid10 厦门电信 阿里云官方网站 百度云加速 photobucket 广东主机托管 google搜索打不开 脚本大全 镇江高防服务器 winds 美国主机 blaze tracert vim命令 更多