如何在点击按钮时暂停阅读文本文件,并在mfc vc ++中的Onclick按钮时恢复它?
文件打开如下 CFileException fileException;
if (readFile.Open(strFilePath, CFile::modeRead, &fileException)
{
while (readFile.ReadString(strLine))
{
...
}
}
答案 0 :(得分:0)
尝试将该代码转移到另一个线程,我认为使用任何解决方案,如果此代码位于主线程内但您必须查看消息,则必须与reentrancy进行对抗来自消息队列。使用线程,您可以suspend或使用一些synchronization primitive来管理其等待。
答案 1 :(得分:0)
将“阅读”移动到单独的线程绝对是最好的方法。但是,您可以添加以下函数以允许在阅读时发生其他事件:
void DoEvents()
{
MSG msg;
while( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
{
::TranslateMessage( &msg );
::DispatchMessage ( &msg );
}
}
假设您的代码中有一个易失性标记,表示暂停/恢复,您可以执行以下操作:
while (readFile.ReadString(strLine))
{
while( this->m_bPause == TRUE )
{
::Sleep( 100 ); // Adjust as necessary
DoEvents();
}
// continue reading...
}
这应该可行,但您可能会注意到应用程序在循环期间有点无响应。希望这会有所帮助。