社区
C#
帖子详情
使用多线程时,怎样指定一个带参数的方法作为ThreadStart()的参数?
xueyhfeng
2005-07-25 10:25:33
如题,如果我使用 Thread thd1 = new Thread(new ThreadStart(Query));来创建线程,那么当这个Query方法带有参数时,会编译失败,说是委托(delegate)与Query不符,该怎么办?
...全文
713
6
打赏
收藏
使用多线程时,怎样指定一个带参数的方法作为ThreadStart()的参数?
如题,如果我使用 Thread thd1 = new Thread(new ThreadStart(Query));来创建线程,那么当这个Query方法带有参数时,会编译失败,说是委托(delegate)与Query不符,该怎么办?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xueyhfeng
2005-07-25
打赏
举报
回复
恩,楼上的方法可行,不过,似乎需要在QueryA()中做额外的判断,我现在用ThreadPool解决了问题,感谢两位,
fxyfx
2005-07-25
打赏
举报
回复
Main()中
Query q1=new Query("ad","dd","dd"...);
Query q2=new Query("cc","cc","cc"...);
Query q3=new Query("ee","ee","ee"...);
Query q4=new Query("11","22","33"...);
类Query中
QueayA()
{
//例如执行操作aa
aa(str1,str2,str3.......);
//例如执行操作bb
bb(str10,str20,str30...);
...............
}
xueyhfeng
2005-07-25
打赏
举报
回复
楼上的方法刚才试了,
因为我要同时启动多个线程来执行操作,而且这些线程需要不同的参数,如果用楼上的方法,那么存在线程同步的问题,似乎是主线程先执行,然后所有创建出来的线程都得到了相同的数据,
fxyfx
2005-07-25
打赏
举报
回复
class Query
{
private string str1;
……参数
public Query(string a,string b,string c......)
{
str1=a;
...........
}
public void QueryA
{
.....................
}
}
void Main()
{
Query q1=new Query("ad","dd","dd"...);
...
Thread th1=new Thread(new ThreadStart(Query.QueryA);
...........
}
firstsee
2005-07-25
打赏
举报
回复
如果你的线程在创建的同时就会启动并执行的话,建议使用
ThreadPool.QueueUserWorkItem(new WaitCallback(Query),state);
这样你就可以把所有的参数放在state中了。
lm517
2005-07-25
打赏
举报
回复
mark
C#
Thre
adS
tar
t
带
参数
线程执行
带
参数
的
方法
,new
Thre
ad(new
Thre
adS
tar
t(delegate {
Thre
adTask(firstPage, lastPage); })); 2.System.
Thre
ading.Parameterized
Thre
adS
tar
t 其实没有必要,
Thre
adS
tar
t本来就是个委托,里面又来了个匿名...
C#
Thre
ad启动线程
时
传递
参数
(1)将多个
参数
放到
一个
结构体或类对象中,再
使用
Parameterized
Thre
adS
tar
t;(2)新建
一个
类,将线程的入口函数定义为类定义的成员函数,
参数
定义为类的属性。2、
带
一个
参数
:
使用
Parameterized
Thre
adS
tar
t。1、不...
c#
Thre
ad
多线程
带
参数
Thre
ad
多线程
参数
Thre
adS
tar
t 传递
参数
Thre
adS
tar
t 传递
参数
带
参数
的
多线程
的方式
带
参数
的
多线程
的方式 #region 执行
带
一个
参数
的
多线程
Thre
ad my
thre
ad = new
Thre
ad(new Parameterized
Thre
adS
tar
t(Calculate)); my
thre
ad.IsBackground = true; my
thre
ad.S
tar
t(5
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章