ThreadStart 与ParameterizedThreadStart的区别
1) ParameterizedThreadStart与ThreadStart
1 static void Main(string[] args)
{ #region ParameterizedThreadStart第一种写法
Thread thread = new Thread(new ParameterizedThreadStart(
(s) => { Console.WriteLine(s.ToString());
} ));
thread.Start("45 1");
#endregion
#region ParameterizedThreadStart第二种写法
//把方法抽出WriteOut
ParameterizedThreadStart parThread = new ParameterizedThreadStart(WriteOut);//WriteOut是方法
Thread thread2 = new Thread(parThread);
thread2.Start("3433343 2"); #endregion #region ThreadStart第一种写法 Thread thread3 = new Thread(new ThreadStart(
() =>
{ Console.WriteLine("ThreadStart里是没有参数的方法 3");
} ));
thread3.Start();//no parameter
#endregion #region ThreadStart第2种写法 Thread thread4 = new Thread(
() =>
{ Console.WriteLine("ThreadStart里是没有参数的方法222 4");
} );
thread4.Start();//no parameter
#endregion
Console.ReadKey(); } private static void WriteOut(object obj)
{
Console.WriteLine(obj.ToString());
}
输出结果顺序是不定的。
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,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" alt="" />
等等
2)ParameterizedThreadStart多个参数的传递
可以把多个值封装到一个类里进行传递
class Program
{
static void Main(string[] args)
{ ParameterizedThreadStart paraThread = new ParameterizedThreadStart(AddTwoNumber);
Thread thread = new Thread(paraThread);
Number numbers = new Number();
numbers.SetPare(, ); thread.Start(numbers);
Console.ReadKey(); } private static void AddTwoNumber(object obj)
{//这里传过来一个类
if (obj is Number)
{
Number num = (Number)obj;
Console.WriteLine(num.First + " +" + num.Second+"=" +(num.First+num.Second));
}
} } class Number
{
private int first;
private int second;
public int First
{ get
{ return first;} set
{ first = value;} }
public int Second
{
get { return second; }
set { second = value; }
} public void SetPare(int n, int m)
{
first = n;
second = m;
} }
ThreadStart 与ParameterizedThreadStart的区别的更多相关文章
- C# 最基本的涉及模式(单例模式) C#种死锁:事务(进程 ID 112)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务,解决方案: C#关闭应用程序时如何关闭子线程 C#中 ThreadStart和ParameterizedThreadStart区别
C# 最基本的涉及模式(单例模式) //密封,保证不能继承 public sealed class Xiaohouye { //私有的构造函数,保证外部不能实例化 private ...
- ThreadStart和ParameterizedThreadStart区别
ThreadStart: ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数. ThreadStart threadStart=new Thre ...
- C# ThreadStart和ParameterizedThreadStart区别
ThreadStart: ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数.ThreadStart threadStart=new Threa ...
- C#中 ThreadStart和ParameterizedThreadStart区别
最主要区别: 1.Thread 是启动一个线程,但是没有参数. 2.ParameterThreadStart 线程可以接受一个输入参数 ThreadStart: ThreadStart这个委托定义为 ...
- 多线程之 ThreadStart 和 ParameterizedThreadStart 委托
先看微软如何给出的方法使用,如下查看,我们发现,如下两个委托,分别对应带参数创建线程 和 不带参数创建线程. 下列 委托 方法不带参数 ThreadStart namespace System.Thr ...
- 在C#中ParameterizedThreadStart和ThreadStart区别
不需要传递参数,也不需要返回参数 我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下: ThreadStart threadStart=new ThreadStart(Calculat ...
- C#的ThreadStart 和 Thread
多线程,new Thread(t1);和new Thread(new ThreadStart(t1));有什么区别 没有区别. 前者,是c#的语法.也就是说是编译器帮你改写为第二种形式. 因此你要搞清 ...
- C#编程总结(二)多线程基础
C#编程总结(二)多线程基础 无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其他工作.要使应用程序能够快速响应 ...
- C#多线程操作界面控件的解决方案(转)
C#中利用委托实现多线程跨线程操作 - 张小鱼 2010-10-22 08:38 在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了 ...
随机推荐
- log4j的配置
转载:http://it.oyksoft.com/log4j/ 收藏:http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html 一. ...
- ThinkPhp 3.2 ajax无刷新分页(未完全改完,临时凑合着用)
临时更改后的page类(很多地方没修改...因为笔者PHP没学好..)如下: <?phpnamespace Fenye\libs; /** file: page.class.php 完美分 ...
- nodejs querystring参数处理
在node js z中,用querystring来进行客户端与服务器的数据交换时序列化数据,是数据处理的小利器. 如:在node中执行这个命令:querystring.stringify({numbe ...
- Swift中类与结构的初始化
前言:通过学习与研究swift3.0的官方文档关于初始化这部分可以总结为一句话:类与结构是确保一个类型的实例可以使用之前,其所有存储属性都得到了正确的赋值. 一,结构的初始化1 struct Firs ...
- nginx本地转发
在conf文件下找到nginx.conf配置文件:添加如下代码:
- 网络抓包wireshark(转)
转自 网络抓包wireshark 抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经 ...
- linux文件及文件夹权限
以前上学的时候简单了解了下linux,现在对它的认识也只停留在一些小白命令上.以为我只要不是做服务器端开发的应该不会去碰吧,工作了才知道做开发的多少还是要熟悉一些linux的,至少你的项目会部署在li ...
- Android中Service通信(一)——启动Service并传递数据
启动Service并传递数据的小实例(通过外界与服务进行通信): 1.activity_main.xml: <EditText android:layout_width="match_ ...
- 2.3.0-alpha1 is too old 解决办法
放个周末,一来就遇到一个奇葩的问题,"Error:(1, 0) The android gradle plugin version 2.3.0-alpha1 is too old, plea ...
- Beta阶段项目总结
1. 每个成员在beta 阶段的实践和alpha 阶段有何改进? 王文奇:对数据库的操作更为熟练,在java web中实现对数据库的修改更加完善 刘元柱:对javascript,css和servl ...