2012-03-14 8 views
0

ボタンのonclickでテキストファイルの読み込みを一時停止し、mcc vC++のOnclickボタンを押すと再開する方法はありますか?ボタンのonclickでテキストファイルの読み込みを一時停止し、mcc vC++のOnclickボタンを押すと再開する方法は?

ファイルは以下のように開かれます CFileException fileException;

if (readFile.Open(strFilePath, CFile::modeRead, &fileException) 
{ 
while (readFile.ReadString(strLine)) 
{ 
... 
} 

} 
+0

これは別のスレッドで実行されていますか? – Naveen

+0

私はmfcでVisual C++を使用していますので、次のタグを使用しました – user1268338

+0

解決策を教えてください:( – user1268338

答えて

0

するTry TROは、私は、このコードはメインスレッド内にある場合は、reentrancyと戦う必要があります任意の溶液で思い、別のスレッドにそのコードを移動していますが、メッセージキューからメッセージを覗き見する必要があります。スレッドを使用すると、suspendか、synchronization primitiveを使用して待機を管理できます。

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... 
} 

これはうまくいくはずですが、ループ中にアプリが反応しなくなることがあります。お役に立てれば。

関連する問題