永发信息网

QT多线程问题:子线程中的变量如何传递给主线程?

答案:1  悬赏:80  手机版
解决时间 2021-03-31 14:27
QT多线程问题:子线程中的变量如何传递给主线程?
最佳答案
public int _CurrentThread;

//form1_load中的,启动线程的代码在这里。
private void Form1_Load(object sender, EventArgs e)
{
//设置最大线程数
int MaxThread = 5;

//获取需要完成的任务列表
OleDbConnection AccessConn = AccessModule.Conn("D:\\Flying Co\\flying.mdb");
string sql = "select * from ty_task where bay_flag=" + false + " order by bay_id asc";

OleDbCommand comm = new OleDbCommand(sql, AccessConn);
OleDbDataReader list = comm.ExecuteReader();

while (list.Read())
{
ContentParse Spider = new ContentParse();

//如果当前活动线程超过最大线程数,线程休眠
if (Spider.CurrentThread> MaxThread)
{
Thread.Sleep(2000);
}
else
{
//init
Spider.Url = list["bay_task"].ToString();

//启动一个线程
Thread SpiderThread = new Thread(new ThreadStart(Spider.execute));
SpiderThread.Start();
MessageBox.Show(Spider.CurrentThread.ToString());

//任务设置为已处理
sql = "update ty_task set bay_flag=" + true + " where bay_id=" + list["bay_id"].ToString();
AccessModule.Execute(AccessConn, sql);
}
}

list.Close();
AccessModule.DisConn(AccessConn);
}

//线程启动的是这个类的方法
class ContentParse
{
private string _Url;

//设置任务参数
public string Url
{
set
{
_task = value;
}
}

public void execute()
{

//活动线程数加1
Interlocked.Increment(ref _CurrentThread);

//中间处理任务的代码省略

//该线程完成,活动线程减1
Interlocked.Decrement(ref _CurrentThread);
}

我现在纠结的就是这个Interlocked.Increment(ref _CurrentThread);应该是开一个线程就要加1的对吧?
但是我在form1中间用 MessageBox.Show(Spider.CurrentThread.ToString());,总是0噢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一年级28与35之间有几个数
跑道一圈大概多少米吗
硬盘模式:Intel(R) Smart Response Technolo
怀孕能吃红沁火龙果吗
主机屋好不好用
我11了1.53怎么样才能长的低
定时插座电子的好还是机械的好,具体说
被遗弃的村庄可以去住吗
福建南安农村商业银行仑苍支行地址有知道的么
请问福建漳州的朋友,听说漳州现在禁摩,具体
求本跟神魔养殖场差不多的书
富士康圆2是什么职位
东方早报消息:我国的空间站未来如何在太空中
姐妹们,你们的第一次破的时候什么感觉?
新房子刚拿到钥匙,没装修想直接住进,按床了
推荐资讯
爱音琴行(盐城滨海)地址在什么地方,我要处理
.am 是哪个国家的域名?
难道所有长相比较清秀的男生都会被称作“娘炮
急!中兴通远程抄报税系统出现错误提示,怎么
南京哪里有卖PVC板和EVA板的、COS用不要太厚
通威1038鱼饲料是啥成份,喂什么鱼的
2012款1.4的迈腾就是315曝光的变速箱吗?
港版360自制系统如何运行莎木2
植物生长素类似物的应用 实例
小白求问软件开发中的接口、框架和库之间的区
桃胶可以跟榴莲一样吃吗?
一张1960年的5元人民币现在值多少钱? 一套呢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?