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无返回值

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

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

TabbyCloud周年庆&七夕节活动 美國INAP 香港CN2

TabbyCloud迎来一周岁的生日啦!在这一年里,感谢您包容我们的不足和缺点,在您的理解与建议下我们也在不断改变与成长。为庆祝TabbyCloud运营一周年和七夕节,TabbyCloud推出以下活动。TabbyCloud周年庆&七夕节活动官方网站:https://tabbycloud.com/香港CN2: https://tabbycloud.com/cart.php?gid=16购买链...

新注册NameCheap账户几天后无法登录原因及解决办法

中午的时候有网友联系提到自己前几天看到Namecheap商家开学季促销活动期间有域名促销活动的,于是就信注册NC账户注册域名的。但是今天登录居然无法登录,这个问题比较困恼是不是商家跑路等问题。Namecheap商家跑路的可能性不大,前几天我还在他们家转移域名的。这里简单的记录我帮助他解决如何重新登录Namecheap商家的问题。1、检查邮件让他检查邮件是不是有官方的邮件提示。比如我们新注册账户是需...

MechanicWeb免费DirectAdmin/异地备份

MechanicWeb怎么样?MechanicWeb好不好?MechanicWeb成立于2008年,目前在美国洛杉矶、凤凰城、达拉斯、迈阿密、北卡、纽约、英国、卢森堡、德国、加拿大、新加坡有11个数据中心,主营全托管型虚拟主机、VPS主机、半专用服务器和独立服务器业务。MechanicWeb只做高端的托管vps,这次MechanicWeb上新Xeon W-1290P处理器套餐,基准3.7GHz最高...

parameterizedthreadstart为你推荐
谷歌德语在线翻译德语翻译 不找你不代表我不想你 别用翻译器 谢谢~office软件包不属于MIcrosoft Office软件包的软件是 ? A Mailjava学习思维导图怎样使用思维导图软件美国大选投票实时数据美国大选最新情况?安卓系统软件删除安卓手机里的软件,哪些可以删除,哪些不可以删除?智能机刷机软件给手机刷机用什么软件好呢?magento2心慌方2是什么意思?催收软件哪个好问下催款人爆通讯录是电话通讯录还是微信上的通讯录或者其它软件的通讯录99客服软件下载99客服软件不兼容 win8慕课网址慕课官网的电话多少?
重庆域名注册 便宜服务器 asp.net主机 godaddy域名优惠码 魔兽世界台湾服务器 蜗牛魔方 阿里云浏览器 双十一秒杀 91vps 佛山高防服务器 服务器合租 电信虚拟主机 支持外链的相册 万网空间购买 google台湾 yundun 上海电信测速 免费的域名 英雄联盟台服官网 net空间 更多