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

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

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

香港 1核 1G 5M 22元/月 美国 1核 512M 15M 19.36元/月 轻云互联

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...

WebHorizon($10.56/年)256MB/5G SSD/200GB/日本VPS

WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...

wordpress投资主题模版 白银黄金贵金属金融投资网站主题

wordpress投资主题模版是一套适合白银、黄金、贵金属投资网站主题模板,绿色大气金融投资类网站主题,专业高级自适应多设备企业CMS建站主题 完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,简洁大气的网站风格设计 + 更利于SEO搜索优化和站点收录排名!点击进入:wordpress投资主题模版安装环境:运行环境:PHP 7.0+, MYSQL 5.6 ( 最低主机需求 )最新兼容:完美...

parameterizedthreadstart为你推荐
谷歌德语在线翻译中文翻译德文江苏ca证书下载数字证书在哪能下载啊excel2003官方Microsoft Office Excel 2003怎么下载bt4破解教程破解软件BT4呼叫中心搭建呼叫中心怎么建设电梯物联网平台国内物联网公司排名,知道的帅哥美女快来回答哦!谢谢了!北漂论坛北漂族的艰辛主要体现在哪些方面?北漂论坛介绍些北漂生活的经验vs2005快捷键vs中的一个快捷键flv转换aviflv怎么转换成avi
asp虚拟空间 子域名查询 北京租服务器 域名解析文件 贝锐花生壳域名 主机评测 新加坡服务器 便宜域名 美国主机推荐 国内永久免费云服务器 轻博客 云全民 中国电信测速112 老左来了 183是联通还是移动 北京双线 新家坡 域名接入 cdn加速原理 流媒体加速 更多