首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

BCB下怎么监控程序运行时间

2012-05-09 
BCB下如何监控程序运行时间求助高手:我希望在一段程序运行过程中随时监控程序处理时间,主要目的是要做到当

BCB下如何监控程序运行时间
求助高手:

我希望在一段程序运行过程中随时监控程序处理时间,主要目的是要做到当处理时间达到某个值时(比如60ms)就立刻终止处理。请问高手们,有办法实现吗?

[解决办法]
这种情况可以设成1ms的时间间隔和一个计数的成员变量,大概是这个样子:
class TForm1::TForm() {
private:
volatile int m_nClick;
int m_nProcess;
};

// 如果ProcessA是一个独立线程
TForm1::OnTimer() {
if ( m_nClick == 60 )
StartProcessA();

m_nClick--;

if ( m_nClick == 0 ) {
StoprocessA();
m_nClick = 60;
if ( --m_nProcess == 0 ) {
Timer1->Enabled = false;
}
}
}

TForm1::Process() {
m_nProcess = 100;
m_nClick = 60;
Timer1->Enabled = true;
}
如果ProcessA在主线程中运行,则需要自己不断检查m_nClick的值,如果为0,就退出ProcessA
TForm1::OnTimer() {
m_nClick--;
}
TForm1::Process() {
m_nProcess = 100;
m_nClick = 60;
Timer1->Enabled = true;

for(int i=0;i<m_nProcess;i++) {
m_nClick = 60;
ProcessA();
}
Timer1->Enabled = false;
}

TForm1::ProcessA() {
while ( m_nTimer > 0 )
DoSomething();
}
一般在这种情况下,应尽量把ProcessA放在独立的线程中

热点排行