[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 01/25 11:02 / Filesize : 93 KB / Number-of Response : 313
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■吉里吉里/KAG/TJS雑談質問スレ■その21



31 名前:名前は開発中のものです。 mailto:sage [2010/05/23(日) 01:24:55 ID:8c/di4zs]
>>30
スレッドのプール自体は何つかっても関係ない。

吉里吉里でスレッド処理が難しい原因は、吉里吉里本体がスレッドセーフでないことにある。むろん通常の用途ではその必要がないからなんだが。
要するに、吉里吉里の諸機能は、常にメインスレッドから呼び出す必要がある。たまたま大丈夫なところもあるが区別はできない。
外部スレッドからは、なにかしらの同期処理を介してメインスレッドに処理を依頼することになる。

逆に吉里吉里側からサブスレッドの処理を呼び出す場合は、サブスレッドがスレッドセーフに
かかれてれば特に問題はない。

吉里吉里標準の機構だけで処理するなら、Window オブジェクトの registerMessageReceiver で吉里吉里側の
処理を登録しておいて、サブスレッド側からは postMessage で WM_APP_* などをつかって機能呼び出しをする方法がある。
Windows のウインドウメッセージ機構はスレッド間で安全に同期することが保証されているのでこれで問題なく動作する。
スレッド側からは結果を通知するだけといった単純な構造ならこれだけで問題ない。

Window オブジェクトを使いたくない場合、あるいは、吉里吉里(メインスレッド) とサブスレッド間で相互処理が必要な
場合は、パイプなりセマフォなり適当なプロセス間通信のハンドラを作っておいて、吉里吉里からは、それを continuous handler
でポーリング、サブスレッド側からは適宜 sleep や WaitFor*Object を使ってポーリングして、ハンドシェイクするような形で
処理することになる。吉里吉里側で Wait してしまうと描画が止まるので要注意






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<93KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef