マルチスレッド – プログラミング – Home

通知
すべてクリア

[解決済] マルチスレッド


カッシーニ
 カッシーニ
(@カッシーニ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

はじめまして。どなたかご存知方がおられましたら、宜しくお願いします。

SDIのマルチスレッドで動くプログラムを作成中なのですが、
ステップ実行するとビジー状態?(ほぼ固まる)になってしまいます。

スレッド関数内部ではステップ実行せず、別のクラスオブジェクトを生成し、
そのクラスの関数を呼び出しています。
そのクラスの関数内部でファイルアクセスしています。
ファイルアクセスの行でブレイクをはって、そこからステップ実行すると
関数の最後で動かなくなってしまいます。

ウィンドウを非表示にするとこの現象は起こりません。
どうやれば正常にステップ実行できるのでしょうか?

宜しくお願い致します。

// スレッド
void CMainFrame::MyThread(void *pParam)
{
 CTest t;

while(TRUE)
{
DWORD state = ::WaitForSingleObject(p->hQuitEvent, 1000);
if (state == WAIT_OBJECT_0)
break;
else if(state == WAIT_TIMEOUT)
{
t.exec();
}
}

_endthread();
}

void CTest::exec()
{
●FILE* p = fopen(C:\test.txt, r); // ブレイク

if (p)
fclose(p);
} // ←ビジー(固まる)


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 21年前
投稿: 1467
 

OSとVisual Studioのバージョンがわかりませんが(質問時に明記すべき)、

WindowsXpの場合

Xpの言語バーとVisual Studio のデバッガの相性が良くないらしいです。
http://www.wg7.com/w2ktips/#CTFMON

私もよくなります。(私の場合はあきらめてなるべくスレッドで動かさないようにしてい
ます。)


返信引用
カッシーニ
 カッシーニ
(@カッシーニ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

とりあえず「詳細なテキスト サービスをオフにする」をチェックして対応しようと思い
ます。


返信引用
カッシーニ
 カッシーニ
(@カッシーニ)
ゲスト
結合: 20年前
投稿: 3
Topic starter  

Blue さん

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました