エラーコード取得 – プログラミング – Home

通知
すべてクリア

エラーコード取得


烈人
 烈人
(@烈人)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

今、こんな形で↓
Thread^ t = gcnew Thread(gcnew ThreadStart(mbc,&MultiBootClass::ThreadProc));
t->Start();

スレッドを作成して、起動させています。そこで、スレッドが起動しなかった場合に、
エラーコードを取得して、スレッドを終了させたいのですが、何か良い方法ないです
か?

ちなみに環境はvc++ 2008 Express Editionです


引用解決済
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

「起動しなかった場合に終了させたい」とはおかしな話ですね。
起動していないものを終了できるのですか?

何らかの理由によって、スレッドの開始自体が正常に行われなかった場合(ThreadProcの
実行までたどり着かなかった場合)は、システムが例外を投げるんじゃないかと思いま
す。
従って、もしそういう可能性を考えるなら、例外を適切に処理すべきであって、エラーコ
ードの出番はありませんし、前述の通り、終了させることはできません。

もし、スレッドの起動は正常に行えた(ThreadProcの実行が開始された)けれども、意図
していた処理を完遂することができずに終了してしまった場合…というなら、方法はいく
らでも考えられるでしょう。
ParameterizedThreadStart の引数にエラーコード用のメンバを設けておくもよし、
MultiBootClass のメンバに設けておくもよし、それ以外のどこかアクセス可能な変数に
入れるもよし。


返信引用
烈人
 烈人
(@烈人)
ゲスト
結合: 16年前
投稿: 2
Topic starter  

すみません。何か勘違いをしてました。スレッドが起動しなかったらではなくて、
スレッドが生成できなかったら、プログラムを終了するでした。どうやったら良いか、
いまいちよく分かりません。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

ですから、スレッドが生成できなかった場合には、おそらく例外が発生するでしょうか
ら、それを捕まえて適切に処理してくださいと書いています。
例外処理の方法は別途学んでください。

もし、終了時に何らかの終了処理をすることもなく、わけのわからないエラーメッセージ
を表示して落ちてしまってもよいのならば、何もする必要はありません。
システムが勝手にプログラムを落としてくれます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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