- 9 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 22:19:18 ]
- 前スレの>>978, 985
wxSocket使おうとしているので、一応確認したが、 受信スレッドを内部で別に立てているなら、 wxUSE_THREADSを1と定義してビルドする必要があるのだろう。 wxMSWだけでの検証ですまんが、コードを追ってみると、 メインスレッドのみ、wxYieldを呼び出している。 wxYieldは内部でwxTheApp->Yield()を呼んでいるだけで ここがマルチスレッドセーフではない模様。 他のスレッドはwxThread::Yield()を呼んでいる。 wxThread::Yield()の内部はSleep(0)なので、問題なし。 wxUSE_THREADSが無い時点でスレッドを立てるような 物は使ってはいけないのでイベントハンドラを定義せずに ブロッキングで組む必要があるということじゃないのかな? ところで、スレッド無しはわざわざヘッダを書き直さないと そのようにはならないと思うのだが、実行してデバッグしたわけではないので 間違っていたらすまん。 そのうち自分でもテストはしないとだめなんだろうがねぇ。
|

|