用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
;
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#中使用ParameterizedThreadStart委托来为线程方法传递参数,并指出参数传递时需要注意的引用特性。
1万+

被折叠的 条评论
为什么被折叠?



