定时器使用的一些小问题
在下想通过定时器实现这样一个功能,
将buffer中的数据写入文件file1.txt中( 假设这个操作可能会引起file2.txt的变化 ),接着监视file2.txt到底有没有变化。
1)、在 1 s 内 file2.txt没有变化,则将buffer内容再次写入文件。
2)、在 1 s 内 file2.txt有变化,则停止计时。
现在我的问题是:
1)、如何能够直接捕捉到WM_TIMER消息,在程序尾部下划线部分如何写代码呢?
2)、当程序在响应WM_TIMER时,会同时继续执行当前函数吗?
int CARQDlg::SendBuffer()
{
CFile file1,file2;
file1.Open("file1.txt",CFile::modeCreate | CFile::modeWrite );
file1.Write(buffer); //发送数据
SetTime(TIMER,1000,0); //设置定时器
file2.Open("file2.txt",CFile::modeCreat | CFile::modeRead );
int FileLength=0; //存file2文件上一次长度
int flag; //文件长度比较标志
do
{
if(file2.GetLength()>FileLength)
{
flag=1;
FileLength=file2.GetLength();
KillTimer( TIMER );
}
else
flag=0;
}while(flag==0&&没有WM_TIMER消息);
return flag;
}
将buffer中的数据写入文件file1.txt中( 假设这个操作可能会引起file2.txt的变化 ),接着监视file2.txt到底有没有变化。
1)、在 1 s 内 file2.txt没有变化,则将buffer内容再次写入文件。
2)、在 1 s 内 file2.txt有变化,则停止计时。
现在我的问题是:
1)、如何能够直接捕捉到WM_TIMER消息,在程序尾部下划线部分如何写代码呢?
2)、当程序在响应WM_TIMER时,会同时继续执行当前函数吗?
int CARQDlg::SendBuffer()
{
CFile file1,file2;
file1.Open("file1.txt",CFile::modeCreate | CFile::modeWrite );
file1.Write(buffer); //发送数据
SetTime(TIMER,1000,0); //设置定时器
file2.Open("file2.txt",CFile::modeCreat | CFile::modeRead );
int FileLength=0; //存file2文件上一次长度
int flag; //文件长度比较标志
do
{
if(file2.GetLength()>FileLength)
{
flag=1;
FileLength=file2.GetLength();
KillTimer( TIMER );
}
else
flag=0;
}while(flag==0&&没有WM_TIMER消息);
return flag;
}
...全文
相关推荐
TON定时器灵活使用案例分享调试过没哦问题
TON定时器灵活使用案例分享调试过没哦问题
STM32系列不同芯片之间程序移植问题以及系统定时器(滴答定时器或者叫Sys tick)的配置,中断使用.docx
STM32系列不同芯片之间程序移植问题以及系统定时器(滴答定时器或者叫Sys tick)的配置,中断使用
STM32F4xx使用STM32cubeIDE打开,定时器2双缓冲,不过有个首灯数据问题需要解决
STM32F4xx使用STM32cubeIDE打开,定时器2双缓冲,不过有个首灯数据问题需要解决
HarmonyOS定时器使用[可运行源码]
本文详细介绍了HarmonyOS中TickTimer定时器组件的基本使用方法,包括其常见属性和方法,并通过一个计时器案例展示了如何实现正向和反向计时。文章还总结了TickTimer组件目前存在的bug,如基准时间设置问题和计时不准确等,并提供了使用建议。此外,通过一个统计10秒内按钮点击次数的案例,进一步展示了TickTimer的实际应用场景和注意事项。
C++定时器Timer在项目中的使用方法
主要给大家介绍了关于C++定时器Timer在项目中的基本使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧


界面
