如果你想为一个线程传入变量你怎么办?
ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法..
ThreadStart myThreadDelegate
=
new
ThreadStart(ThreadMethod);
//
public delegate void ThreadStart(); u can't pass a Parameter
Thread myThread
=
new
Thread(myThreadDelegate);
=
new
Thread(myThreadDelegate);
myThread.Start();
//
myThread.Start(o); Wrong!
//
myThread.Start(o); Wrong!
不过在.Net1.0下,你可以通过Delegate的异步调用来实现.现在在.Net2.0下提供了ParameterizedThreadStart 这么一个Delegate.它和ThreadStart 的不同就在于可以拥有一个object类型的参数.也就是说你可以通过它来使用Thread类以启动一个线程并传入参数, 和Java很象了,不错的新功能.
using
System;
System;
using
System.Threading;
namespace
ParameterizedThreadStartTest
{
class
Program
{
static
void
Main(
string
[] args)
{
ParameterizedThreadStart myParameterizedThreadDelegate
=
new
ParameterizedThreadStart(ThreadMethod); Thread myThread
=
new
Thread(myParameterizedThreadDelegate);
=
new
ParameterizedThreadStart(ThreadMethod); Thread myThread
=
new
Thread(myParameterizedThreadDelegate);
object
o
=
“
hello
“
;
myThread.Start(o);
}
private
static
void
ThreadMethod(
object
o)
{
string
str
=
o
as
string
;
Console.WriteLine(str);
}
}
}
今天的文章.Net2.0 的新线程 ParameterizedThreadStart分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33704.html