■吉里吉里/KAG/TJS雑談質問スレ■その21at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その21 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト26:名前は開発中のものです。 10/05/22 23:27:07 wZsbkn5w ファイルIOの口がないtjsでチェックサムとか何に使うの? 27:名前は開発中のものです。 10/05/22 23:36:53 2qEI+QNM プラグインからならIStreamでファイルに触れるじゃん。 TJSに公開されてないだけで。 28:名前は開発中のものです。 10/05/22 23:51:15 2qEI+QNM あ、俺はネットワーク通信のデータ検証の用途で使おうと思ってる。 29:名前は開発中のものです。 10/05/22 23:57:50 wVFKgm4j とりあえずスレッド処理がんばれな。そうしないと簡単に画面フリーズするから。 30:名前は開発中のものです。 10/05/23 00:07:06 JzgxT+Nv 以前スレッド生で管理しようとして挫折したんだが、 Boost.Asioのスレッドプール使えば大丈夫だったりしないかな……。 31:名前は開発中のものです。 10/05/23 01:24:55 8c/di4zs >>30 スレッドのプール自体は何つかっても関係ない。 吉里吉里でスレッド処理が難しい原因は、吉里吉里本体がスレッドセーフでないことにある。むろん通常の用途ではその必要がないからなんだが。 要するに、吉里吉里の諸機能は、常にメインスレッドから呼び出す必要がある。たまたま大丈夫なところもあるが区別はできない。 外部スレッドからは、なにかしらの同期処理を介してメインスレッドに処理を依頼することになる。 逆に吉里吉里側からサブスレッドの処理を呼び出す場合は、サブスレッドがスレッドセーフに かかれてれば特に問題はない。 吉里吉里標準の機構だけで処理するなら、Window オブジェクトの registerMessageReceiver で吉里吉里側の 処理を登録しておいて、サブスレッド側からは postMessage で WM_APP_* などをつかって機能呼び出しをする方法がある。 Windows のウインドウメッセージ機構はスレッド間で安全に同期することが保証されているのでこれで問題なく動作する。 スレッド側からは結果を通知するだけといった単純な構造ならこれだけで問題ない。 Window オブジェクトを使いたくない場合、あるいは、吉里吉里(メインスレッド) とサブスレッド間で相互処理が必要な 場合は、パイプなりセマフォなり適当なプロセス間通信のハンドラを作っておいて、吉里吉里からは、それを continuous handler でポーリング、サブスレッド側からは適宜 sleep や WaitFor*Object を使ってポーリングして、ハンドシェイクするような形で 処理することになる。吉里吉里側で Wait してしまうと描画が止まるので要注意 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch