今、こんな形で↓
Thread^ t = gcnew Thread(gcnew ThreadStart(mbc,&MultiBootClass::ThreadProc));
t->Start();
スレッドを作成して、起動させています。そこで、スレッドが起動しなかった場合に、
エラーコードを取得して、スレッドを終了させたいのですが、何か良い方法ないです
か?
ちなみに環境はvc++ 2008 Express Editionです
「起動しなかった場合に終了させたい」とはおかしな話ですね。
起動していないものを終了できるのですか?
何らかの理由によって、スレッドの開始自体が正常に行われなかった場合(ThreadProcの
実行までたどり着かなかった場合)は、システムが例外を投げるんじゃないかと思いま
す。
従って、もしそういう可能性を考えるなら、例外を適切に処理すべきであって、エラーコ
ードの出番はありませんし、前述の通り、終了させることはできません。
もし、スレッドの起動は正常に行えた(ThreadProcの実行が開始された)けれども、意図
していた処理を完遂することができずに終了してしまった場合…というなら、方法はいく
らでも考えられるでしょう。
ParameterizedThreadStart の引数にエラーコード用のメンバを設けておくもよし、
MultiBootClass のメンバに設けておくもよし、それ以外のどこかアクセス可能な変数に
入れるもよし。
すみません。何か勘違いをしてました。スレッドが起動しなかったらではなくて、
スレッドが生成できなかったら、プログラムを終了するでした。どうやったら良いか、
いまいちよく分かりません。
ですから、スレッドが生成できなかった場合には、おそらく例外が発生するでしょうか
ら、それを捕まえて適切に処理してくださいと書いています。
例外処理の方法は別途学んでください。
もし、終了時に何らかの終了処理をすることもなく、わけのわからないエラーメッセージ
を表示して落ちてしまってもよいのならば、何もする必要はありません。
システムが勝手にプログラムを落としてくれます。