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

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

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

博鳌云¥799/月,香港110Mbps(含10M CN2)大带宽独立服务器/E3/8G内存/240G/500G SSD或1T HDD

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

VinaHost,越南vps,国内延时100MS;不限流量100Mbps

vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...

BlueHost主机商年中618活动全场低至五折

BlueHost 主机商在以前做外贸网站的时候还是经常会用到的,想必那时候有做外贸网站或者是选择海外主机的时候还是较多会用BlueHost主机商的。只不过这些年云服务器流行且性价比较高,于是大家可选择商家变多,但是BlueHost在外贸主机用户群中可选的还是比较多的。这次年中618活动大促来袭,毕竟BLUEHOST商家目前中文公司设立在上海,等后面有机会也过去看看。他们也会根据我们的国内年中促销发...

parameterizedthreadstart为你推荐
防恶意点击防恶意点击的原理是什么,是根据什么判定的?win7无线局域网win7本本如何搭建无线局域网呀?发博客怎样在博客上发文章?qq空间个性域名Qq空间的个性域名是什么意思。微信语音在哪个文件夹微信语音保存在手机那个文件夹里金山铁路最新时刻表上海铁路时间表罗振宇2017跨年演讲有时候拼命奔跑,只是为了留在原地是什么意思微服务网关手机上网的网关端口和网关IP是多少?云桌面是什么意思云桌面虚拟化办公有哪些优点?洛阳小程序开发洛阳软件开发培训去哪里可以学得到实用的技术呀?
如何查询ip地址 域名备案只选云聚达 七牛优惠码 bbr bandwagonhost z.com wordpress技巧 宕机监控 tightvnc lamp配置 建站代码 三拼域名 全站静态化 有奖调查 什么是服务器托管 1g空间 100mbps 微软服务器操作系统 便宜空间 外贸空间 更多