マルチドキュメントのMFCプロジェクトで、あるビュー生成したスレッド
内から、ビュー上のコントロールに変更を加えるという処理を書いている
のですが、リストコントロールは問題にならないのに、エディットボックス
に変更を加えるような処理を、スレッドから呼び出すとデッドロック的な
挙動になります。ほぼ同じタイミングで呼んでいます。
このこのから、コントロールによって、別スレッドからの変更に耐えられる
ものとそうでないものが有るようなのですが、これらについて詳しく知れる
サイト等があったらご教授願えれば幸いです。
検索すると・・・
MFCの場合、コントロールやダイアログへのアクセスは、すべて
スレッドセーフでは無い
と言うことのようです。
そうでない、と言うものも、たまたまうまく動作しただけで、
それが正しい動作では無いと思った方がよいようです。
ttp://msdn.microsoft.com/ja-jp/library/975t8ks0(VS.80).aspx
以上。参考まで
なるほど、そうでしたか。
ありがとうございます。
成功していたのは仮想リストコントロールとして使っているリストコントロールだったのですが、これはコンテナのデータを別途用意して、メッセージによって処理されるハンドラ内で内容に変更を加えていたため安全に動作していたようです。
合点がいきました。
ツイート | ![]() |