多线程问题 线程只能运行一次 我苦恼了很长时间不得其解 源码附内 大家请帮帮忙

「已注销」 2001-06-06 06:00:00
加精
_fastcall TMyThread::TMyThread(void):TThread(true)
{
FreeOnTerminate=true;
Resume();
} //声明线程


声明线程 没错吧

void __fastcall TConfigw::autosearchClick(TObject *Sender)
{
MyThread=new TMyThread;
//MyThread->FreeOnTerminate=true;
autosearch->Enabled=false;
}

启动线程 没错吧

MyThread->Terminate();
Configw->lsearch->Caption="资源搜索结束";
bstop=true;//可以停止了
autosearch->Enabled=true;
//停止搜索 因为资料不全 无法做到完全停止 2001-3-2 yqf

中止线程 难道问题出在这里

运行一次总是不能再运行第二次 如果中途终止了 下次启动会继续接着上次的结果运行



时间有点紧 大家多多帮帮忙吧

如果我问题说得不清楚 还需要哪部分代码 请说
...全文
1490 73 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
73 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangdie 2001-08-07
  • 打赏
  • 举报
回复

学习学习
「已注销」 2001-06-21
  • 打赏
  • 举报
回复
春阳版主

还行么……

多谢你帮了我的大忙啊……

还有各位

再点名表扬老良……

我又发了个贴子
http://www.csdn.net/expert/topic/166/166636.shtm

大家可到那再领分

我答应过大家要狠狠加分的

┏━┯━┓
┃楓 葉┃
┠ ◆ ┨
┃印 秋┃
┗━┷━┛
xycleo 2001-06-13
  • 打赏
  • 举报
回复
葉老大我找你
「已注销」 2001-06-13
  • 打赏
  • 举报
回复
推一推

让更多朋友学习一下

@_@
  • 打赏
  • 举报
回复
向老大们学习。
线程啊,线程....
如果多一些try catch 呢?
这两天我做了个自己的Trace Window,呵呵。
「已注销」 2001-06-10
  • 打赏
  • 举报
回复
关键是设置条件退出这个循环

对么
「已注销」 2001-06-09
  • 打赏
  • 举报
回复
正宗的BCB呀

@_@
baikaishui 2001-06-09
  • 打赏
  • 举报
回复
天啦,看了那么多,我竟连程序是什么语言编写的都不知道!
robin_wan 2001-06-09
  • 打赏
  • 举报
回复
同意igame(igame) 的观点。
以前我也遇到过
“在线程的EXECUTE过程中应该是个循环”is right!!!
robin_wan 2001-06-09
  • 打赏
  • 举报
回复
belecyrus 2001-06-08
  • 打赏
  • 举报
回复
我昨天是试了一个下午都没结果,唉!学习学习再学习呀.
igame 2001-06-08
  • 打赏
  • 举报
回复
在线程的EXECUTE过程中应该是个循环,这样的话,不会只运行一次啦
以前我也遇到过
比如:
int i;
void ThreadExecute()
{
i++;
}
结果线程就只运行一次
但是
void ThreadExecute()
{
while(1)
i++;
}
就会不停的运行
试试看

孩皮妞野 2001-06-08
  • 打赏
  • 举报
回复
你的程序相互之间联系太紧,除错起来可能比较麻烦。多线程又尤其难调。

其实从你的需求来看似乎并不是非用多线程不可, 不如用ProcessMessage, 你马上就可以搞定了。
「已注销」 2001-06-08
  • 打赏
  • 举报
回复
ALNG

采用多线程的缘故是我想在搜索的时候不想让程序呈假死状态

我想在搜索的时候可以允许用户干点别的啊

硬盘一阵狂响

而主程序假死了 我觉着很不爽……

不是结合太紧

是我当初没为多线程考虑太多啊……

结果导致这些麻烦


to 春阳并TR@SE(排名不分先后)

这个贴子先不结

等我忙完了这几天

好好研究一下

再结

春阳版主的算法写得比较精致

至少我这么认为

我想再仔细看一看……
「已注销」 2001-06-07
  • 打赏
  • 举报
回复
………… if(pList->Count==0)
Terminate();
春阳版主 这句有问题

这段程序给我的第一感觉是速度快了

我以为是用了变量的原故

后来我思考再三 觉着这句有问题

也就是说发现一个空目录就马上终止了

对吗

而这个时候还有很多非空目录

可能还没搜索到
TR@SOE 2001-06-07
  • 打赏
  • 举报
回复
void __fastcall YaoThread::Execute(void)
{
while (!Terminated)
{
status=(status+1)%2;
// Sleep(100);
Synchronize(VisualSet);
}
}

void __fastcall YaoThread::VisualSet()
{
if(status==1)
YaoImage->Picture->LoadFromFile("yangyao.bmp");
else
YaoImage->Picture->LoadFromFile("yinyao.bmp");

}

class YaoThread : public TThread
{
private:
int status; //indicates Yin or Yang
int Indicator; //which YaoImage it is tracking
TImage *YaoImage;
void __fastcall VisualSet();
protected:
void __fastcall Execute(void);
public:
YaoThread();
YaoThread(int YaoIndicator, TImage *aImage);
int GetStatus()
{
return status;
}
void SetIndicator(int aNumber, TImage *aImage)
{
Indicator=aNumber;
YaoImage=aImage;
}
};

我一般用类变量。而外部用到的变量用指针传进去。
Wingsun 2001-06-07
  • 打赏
  • 举报
回复
只能象我写的那个程序那样写了,通过类的成员来传递了。
「已注销」 2001-06-07
  • 打赏
  • 举报
回复
能不能返回值呢

能返回值也很棒啊

我现在已经改写了很多代码了

写到这个地方觉着不能返回值就太逊了
「已注销」 2001-06-07
  • 打赏
  • 举报
回复
这种调用又怎么返回参数呢

总不能都用全局变量吧
Wingsun 2001-06-07
  • 打赏
  • 举报
回复
根据Synchronize的定义,这个是不能传入参数的。

不是我不想啊,我也很想能传入参数,可是borland不肯啊。。。。
加载更多回复(53)
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 【久久在线FLASH系统】是一款专为久久在线网站打造的交互式Flash平台,集成了前台展示与后台管理功能,满足内容发布、管理和用户互动的需求。Flash技术曾广泛应用于网页动画和互动内容,尤其在早期互联网时代,在游戏、广告和多媒体教学等领域发挥了重要作用。该系统的核心包括以下几个关键方面: Flash技术:系统利用Flash创建动态图形、动画和交互内容,依赖Adobe Flash Player运行。其编程语言ActionScript支持面向对象开发,便于实现复杂逻辑和交互效果。 后台管理系统:作为系统的控制中心,后台支持内容上传、编辑、分类、权限设置、用户管理及数据分析,确保内容的有序更新与发布。 产品演示模块:用户可在线预览和体验产品功能,无需下载,通过交互式演示了解产品操作流程和优势。 数据库集成:系统与数据库紧密结合,用于存储Flash文件信息、用户数据及访问记录,实现高效的数据管理与检索。 安全性与优化:系统具备防止非法访问和数据泄露的安全机制,并对Flash内容进行优化,提升加载速度与用户体验。 响应式设计:尽管Flash主要用于桌面端,系统仍考虑多设备兼容性,通过响应式设计适配不同屏幕尺寸,提供一致体验。 API接口:系统支持与其他平台或服务通过API进行数据交互,如社交媒体分享、数据分析等,拓展功能边界。 用户体验:界面设计注重交互性与视觉效果,提升用户满意度和停留时间,增强平台吸引力。 版本控制:系统支持内容版本管理,便于追踪更新历史,方便内容维护与回滚。 性能监控:内置性能监控工具,实时跟踪系统负载与资源使用情况,及时发现并解决问题,保障系统稳定运行。 【久久在线FLASH系统】是一个综合性解决方案,融合了前端展示、后台管理、互动体验和数据分析等功能,体现了当时Web
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 BP神经网络轴承故障诊断系统是一种基于人工神经网络技术的智能诊断工具,专门用于识别和分析机械设备中轴承的故障情况。该系统的核心是BP神经网络(即反向传播神经网络),它能够模拟人脑的工作方式,通过学习和训练来处理复杂的非线性问题,从而对轴承的健康状态进行精准评估。 BP神经网络的基本结构由输入层、隐藏层和输出层构成。输入层接收来自传感器的信号,如振动数据或声音频率,这些信号反映了轴承的运行状态。隐藏层负责对输入数据进行特征提取和转换,将原始信号转化为更具价值的信息。输出层则输出最终的诊断结果,例如轴承是否正常、轻微磨损或严重损坏等。 在诊断过程中,数据预处理是至关重要的步骤。原始的振动或声学数据通常含有噪声,且不同传感器的数据可能缺乏可比性。因此,需要对这些数据进行滤波、归一化等处理,以提高数据质量。预处理后的数据随后被输入到BP神经网络中。在训练阶段,网络通过反向传播算法调整权重和阈值,使预测结果尽可能接近实际故障类型。这一过程利用了梯度下降法,通过计算误差梯度来更新网络参数,以最小化损失函数(通常是均方误差,用于衡量预测值与真实值之间的差异)。 BP神经网络的性能受到多种因素的影响,包括网络结构(如隐藏层的数量和每层的神经元数量)、学习率以及训练迭代次数等。优化这些参数对于提升诊断精度和速度至关重要。此外,为了验证和提升模型的泛化能力,通常采用交叉验证方法,将数据集分为训练集、验证集和测试集。其中,训练集用于训练网络,验证集用于调整网络参数,测试集则用于评估模型在未知数据上的表现。 总体而言,BP神经网络轴承故障诊断系统凭借其强大的学习和泛化能力,通过对机械设备振动和噪声数据的分析,能够实现对轴承故障的精确识别。该系统有助于提前发现设备故障隐患,减少停机时间,提高生产效率,对工业领域

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧