博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThreadStart和ParameterizedThreadStart区别
阅读量:6036 次
发布时间:2019-06-20

本文共 1590 字,大约阅读时间需要 5 分钟。

ThreadStart:

ThreadStart委托定义为public delegate void ThreadStart(),所以执行的方法不能带有参数。

private void btnThreadStart_Click(object sender, EventArgs e){  Thread th = new Thread(new ThreadStart(this.ShowMsgByThreadStart));  th.Start();}private void ShowMsgByThreadStart(){  MessageBox.Show("通过ThreadStart显示消息!");}

这里我们定义了一个ThreadStart类型的委托,这个委托指定了线程需要执行的方法ShowMsgByThreadStart,在这个方法实现了一个简单的弹出消息的功能,这就是最简单的多线程的例子,在很多情况下这就足够用了。

 

ParameterizedThreadStart:

ParameterizedThreadStart委托定义为public delegate void ParameterizedThreadStart(object obj),所以执行的方法可以传递一个object参数。

private void btnParameterizedThreadStart_Click(object sender, EventArgs e){  Thread th = new Thread(new ParameterizedThreadStart(this.ShowMsgByParameterizedThreadStart));  th.Start("通过ParameterizedThreadStart传递参数显示消息!");}private void ShowMsgByParameterizedThreadStart(object obj){  MessageBox.Show(obj.ToString());}

上述例子中的ShowMsgByParameterizedThreadStart方法有一个object参数,通过线程委托ParameterizedThreadStart来传递参数实现显示消息的功能,虽然上述例子中只能传递一个参数,但是参数为object类型,我们可以变相的实现多个参数的传递,注意在使用object参数时需要进行类型转换,例子如下:

public class AddParams{  public int a, b;  public AddParams(int num1, int num2)  {    a = num1;    b = num2;  }}private void btnMoreParas_Click(object sender, EventArgs e){  AddParams ap = new AddParams(10, 20);  Thread th = new Thread(new ParameterizedThreadStart(this.MoreParameters));  th.Start(ap);}private void MoreParameters(object obj){  if (obj is AddParams)  {    AddParams ap = obj as AddParams;    MessageBox.Show(string.Format("{0} + {1} = {2}",       ap.a, ap.b, ap.a + ap.b));  }}

 

转载于:https://www.cnblogs.com/yuanfang2015/p/4863848.html

你可能感兴趣的文章
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>
【面试次体验】堆糖前端开发实习生
查看>>
基于apache实现负载均衡调度请求至后端tomcat服务器集群的实现
查看>>
C#+QQEmail自动发送邮件
查看>>
[Hadoop]MapReduce多输出
查看>>
Android Activity详解(一)
查看>>
快准车服完成3000万元A+轮融资,年底将开始B轮融资
查看>>
让我去健身的不是漂亮小姐姐,居然是贝叶斯统计!
查看>>
MySQL 数据约束
查看>>
我的友情链接
查看>>
SERVLET容器简介与JSP的关系
查看>>
《服务器SSH Public Key认证指南》-补充
查看>>
我的友情链接
查看>>
Java break continue return 的区别
查看>>