C# 多线程 线程中参数传递
2013-11-14 01:08
477 查看
用C#创建线程是一件很方便的事,一个Void类型的函数,一句声明就可以创建出自己的线程应用。看下面的例子: 简单线程创建 public class ThreadController { public ThreadController() { System.Threading.Thread thread = new System.Threading.Thread(ThreadMethod); thread.Start(); } private void ThreadMethod() { //Do something } } 不过从上面的例子可以看到一个问题,就是ThreadMethod方法是不能传入参数的。要解决这个问题,需要用到ParameterizedThreadStart。看这个例子: 参数线程 public class ThreadController { public ThreadController() { int value = 10; //ParameterizedThreadStart ps = new ParameterizedThreadStart(Connector); //Thread scanThead = new Thread(ps); System.Threading.Thread thread = new System.Threading.Thread( new System.Threading.ParameterizedThreadStart(ThreadMethod)); thread.Start(value); } private void ThreadMethod(object parameter) { Console.WriteLine(parameter.ToString()); } } 这样线程的响应函数就可以接收参数了。这里还有一个要注意的问题,就是作为参数传递进来的parameter,虽然在参数描述上没有加Ref,但实际上是传地址的引用。所以如果在ThreadMethod中对parameter进行修改。ThreadController中的value值也会被修改。
相关文章推荐
- C#实现一个简单的多线程IP或端口扫描器
- Emgu CV(OpenCV for C#)学习笔记(2)
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- C# 委托(小细节)新手教程2
- C#中Hashtable的用法
- C#编译器闭包机制
- C# 生成条形码的类
- C#产生随机数的类
- C#学习记录之第五天
- C#学习笔记之四:接口
- 直接插入排序
- C#学习笔记之三:数组
- c# console move string
- 了解下C#异常时的输出
- C# 字符串分割,包括分割多个字符
- C# 获取句柄
- C# 结构体初始化, 求为空
- C# ListView用法详解
- C# - Generic
- C# abstract introduction