nsIHttpChannel.asyncOpenは動く (続々・nsIHttpChannel.asyncOpenが動かない)

| コメント(0) | トラックバック(0)

続・nsIHttpChannel.asyncOpenが動かないの続き。

nsIHttpChannel.asyncOpenおよび nsIStreamListenerがらみのソースを追っていったところ、 どうやらNS_ProcessNextEventなる関数が怪しいことがわかった。 この関数は現在のスレッドに対して nsIThread.processNextEvent(PR_False)を呼び出す。 こうすることで現在のスレッドにたまっているGeckoイベントを処理することができるわけだ。 こいつを呼び出す処理をたとえばDelphiならApplication.OnIdleに追加すればいい。

が、Gecko1.8まではそんなことをせずともイベントを処理できていたので改悪に見えなくもない。 せっかくのイベント駆動型のOSを使っているのに こんな余計な処理を埋め込みたくないというのが正直な感想だ。 一応Gecko1.9でもSimpleDownload他を動かせる目処が立ったので、 とりあえずそれはよしとする。

まさかnsIWebBrowserのリスナーでも必要だとか言うことはないだろうな。

追伸。Bagelの人へ。 コメント書き込めます。 MovableTypeアップデート時に設定ミスって申し訳なかった。

トラックバック(0)

トラックバックURL: http://nesitive.net/mt/tbping/181

コメントする

アーカイブ

ウェブページ

Powered by Movable Type 4.21-ja

このブログ記事について

このページは、が2008年9月22日 02:48に書いたブログ記事です。

ひとつ前のブログ記事は「続・nsIHttpChannel.asyncOpenが動かない」です。

次のブログ記事は「jail多すぎる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。