| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3119 人关注过本帖
标题:[求助]如何实现线程间的通信
取消只看楼主 加入收藏
xc_lw
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2004-11-12
收藏
 问题点数:0 回复次数:1 
[求助]如何实现线程间的通信

想写这样一个程序.采用双线程.T1去搜索硬盘上的*.exe文件.搜到以后立即告诉T2,然后T2将此文件名列出到窗体上的ListBox中.同时T1继续搜索.那么T1和T2之间的即时通信如何实现呀?

搜索更多相关主题的帖子: 线程 通信 
2006-02-28 15:55
xc_lw
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2004-11-12
收藏
得分:0 
以下是引用月夜枫华在2006-2-28 17:35:00的发言:

首先,定义一个公有集合
ArrayList AL_FileName=new ArrayList();
T1的线程代理函数
private void T1()
{
while(true)
{
string s=this.selectExtFile();//假设这是用来执行查找文件的函数
//在设置好循环的结束标志
}
}
private void T2()
{
while(true)
{
string filename=this.getAndDelItem();
if(filename!="")
{
//显示filename
}
//设置循环结束条件
}
}
private string getAndDelItem()
{
string s="";
lock(this)
{
if(this.AL_FileName.Count>0)
{
s=this.AL_FileName[0];
this.AL_FileName.RemoveAt(0);
}
}
return s;
}

这样能做到即时通信吗?你这样做好象是两个线程好象是异步执行的呀!可不可以用消息队列来实现呢.T2搜到一个文件,向主线程发一消息.主线程接到消息后会触发相关的事件.


2006-03-01 09:21
快速回复:[求助]如何实现线程间的通信
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029114 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved