掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッド処理について (ID:58649)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>AfxBeginThread(ThreadFunc_Main , this); >のthisを渡してはいけないということでしたか? そういうことになると思います。 細かい理由はMSDNに譲りますが、Microsoftは、CWndクラスのオブジェクトと HWNDの対応を付けをスレッドローカルで行っており、この対応付けを CWndの中のどの処理で使っているのかと言うところまで抑えていて そこを避けるようにして使う分には現状は動作します。 但し、Microsoftはスレッド間でCWndクラスのオブジェクトをやり取りしては いけませんと書いているので今後、動かないような方向に実装を変更したと しても文句は言えないと思います。 そういう意味では、Microsoftの保障した方法で解決するように習慣付けた方が 安全でしょう。 PostMessageやSendMessageをしたいだけであれば、HWNDを渡せば十分に用は足りますから。 AfxBeginThread(ThreadFunc_Main, this->GetSafeHwnd()); とでもすればよろしいかと。 まあ、安全を考えるなら一度、HWNDの変数で取得しておいて HWNDがNULLでないか確認した方が良いでしょうけれど。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.