掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッド処理について (ID:58623)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>とおりさんへ 鋭い「つっこみ」ありがとうございますm(_ _)m 貴殿が指摘する内容は、その通りだと思います。 #普段は論理的な説明に定評がある常連の方と推察します。 >勘違いをしていませんか? 実は、ほとんど当たり。(小さな声にならないのは、残念) この対策1については、深く考えていないことを見破られました。(汗 もっとも、てつやさんの趣旨が↓であることも理解しています。 これはWindowの生成/破棄を同じスレッドで正しく行うための処置です。 ご存知とは思いますが、モーダルダイアログの場合、消滅するまで 制御が他に移動できないし、この質問は、その点が不明なため、 深く考えても意味がないと、判断したしだいです。 #真相としては、私が大域的に考えるのが苦手なだけです、ゴメン。 #もちろん、不真面目に考えたという訳でもありません、念のため。 それで、「対策2」の方法に的を絞りますが、ワーカスレッドが 確実に終わった時点で、tetrapodさんが示された「EndDialog」等を BOOL CDlg::OnInitDialog() の中で使えばいいのではないかと思います。 この方法でも、「Windowの生成/破棄を同じスレッドで正しく行う」と いうプログラム構造の原則(?)は満たします。それに、何より スレッドの中ではなくダイアログの中の使用なので、「CWnd」とか 「HWND」については、大域的に考えなくて良い利点があります。 つまり、プログラム構造として、局所的に収束している利点があると いうことです。 #勘違いは、こちらの説明に比重をかけたかったからとも付け加えます。 >そもそもHT固有の問題と判明したわけでもないのに、そこにフォーカス >して解説するのはおかしいと思います。(もちろんその可能性もあるが) ですから、「潜在的に不具合だったものが、顕在化した」と申しています。 ロジックとして、危険であったコードが、「HTテクノロジー」の登場で はっきりと「不具合」として表面化したとの認識です。 付け加えるなら、「遣ってダメなら、次の原因と方法を考えましょう!」 とも申しておきます。、前回の冒頭に↓のような文言も入れていますし。 >#外していたら、さらにゴメンなさいだけれども・・・ 不具合の可能性のあるものを、一つ一つ潰していくことが、原因の特定と 対処につながると思います。 >単純に、スレッドの実行順序やタイミングに依存しているようなプログラム >は根本的にバグ持ちであり、環境によらず対策が必要です。 まさしく、その通りだと思います。また、今後増えることが予想されます。 すでに、指摘されている「スレッド使用に起因する不具合」の典型です。 なお、示したコードは大雑把であることは、事前に、お断りしましたが 「return 数値」の部分は ここでは 「EndDialog」ですね。 ところで、とおりさんは不具合の原因は何であると思いますか? また、その対策はどのようにお考えでしょうか? >フォレスタさんへの質問とお願い 質問は、このプログラムは、当初はシングルスレッドで作成されて いたと推測しますが、GUIが固まるので、マルチスレッドに したものではないでしょうか? #作りからして、そう判断したくなります お願いとしては、是非、確かめて結果を報告して下さい。m(_ _)m #「ハイパースレッディングテクノロジー」機能搭載のCPUなど #まだまだ高嶺(=高値)の花で、私には手が届きません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.