2009-07-25 21 views
1

現在、私のプロジェクトは2つのスレッド(ビュー/フォームビュー、アプリケーションウィンドウなどのMFCオペレーション用と、無限whileループ用)メイン機能)。しかし、特定の状況では、プログラムをデバッグモードで実行すると、スレッドの終了ステータスの1つが1であることに気付きました(つまり、オペレーティングシステムにゼロ以外の数値が返されました)。 Visual Studio 2005でアプリケーションを実行しているときに、何が起こっているのかをトラブルシューティングできるように、戻り値の原因となるスレッドを見つける最も簡単な方法は何ですか?前もって感謝します。スティーブGilhamの提案取り入れMFC:クラッシュの原因となったスレッドのトラブルシューティング

:スレッドが++スパイを見て、エラーを担当する調査した後

は、私は、このリターン・メッセージを担当しているhdlUninitDevice()NovintファルコンSDKからの呼び出しの単一ラインに釘付けにしています。この呼び出しから失敗ステータスを戻しても、エラーメッセージがポップアップすることはありません。しかし、これが大規模な状況に対処するために不可欠な主要な取引かどうかはわかりません。より多くの提案を聞くことは素晴らしいことです。ありがとう。

答えて

0

従属スレッドはどのように終了していますか?私の最初の考えは、メインスレッドが終了して非優雅な方法でシャットダウンされていると、非ゼロステータスが発生する可能性があるということです。

少なくとも、2つのスレッドが終了する時刻を切り離すことができれば、どちらがどのステータスに戻るかを知るのに役立ちます。

+0

従属スレッドが中断されて終了した後、親スレッド自体が終了します。しかし、時には私の知ることなしに(おそらくタイマの使用によって作成された)他の従属スレッドが作成されていることに気付きました。どの従属スレッドが、そのWin32スレッド番号に基づいてゼロ以外のステータスで終了しているかはどのようにしてわかりますか? – stanigator

+0

私は知らないし、Google経由ですぐに明らかでもない。しかし、プロセスの終了に関するMSDNの記事は、より広い問題に取り組むための出発点かもしれません。 http://msdn.microsoft.com/en-us/library/ms686722%28VS.85%29.aspx –

+0

ありがとうございました。私はその記事を見ていきます。 – stanigator

関連する問題