問題タブ [dispatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
9135 参照

wpf - Dispatcher で UI 要素を更新するより良い方法はありますか?

私は WCF サービスの初心者であり、WCF サービスを非同期的に呼び出すときに、WPF UI 要素 (Label コントロールなど) を更新するより良い方法があるかどうかを調べようとしています。

コードの一部を次に示します。

ご覧のとおり、AsyncCallback によって取得された非同期の結果で label1.Content を更新しています。

私の質問は、この非同期コールバック操作内で UI コントロールを更新するより良い方法またはより正しい方法はありますか?

前もって感謝します!

0 投票する
2 に答える
3015 参照

c# - WPF: UI スレッドとバックグラウンド スレッド間でオブジェクトを渡す

InitializeComponents の後の Window コンストラクターで、オブジェクトを作成してデータグリッドにバインドする必要があります。オブジェクトの作成に時間がかかりすぎるため、ウィンドウが表示されるまでに時間がかかります。そこで、オブジェクトの作成をバックグラウンド スレッドに移動し、dispatcher.invoke を実行してバインディングを実行することで、UI スレッドに「委譲」することにしました。しかし、これは失敗します。

奇妙なことに、Dispatcher.invoke 内にある四角形の可視性を設定しようとすると、それは機能しますが、DataGrid.setbinding は機能しません! 何か案は?バックグラウンドワーカーとスレッドスタートで同じことを試しましたが、同じエラーが発生し続けます。ディスパッチャー呼び出しデリゲート内で発生しているにもかかわらず、DataGrid オブジェクトにアクセスできません。これがどのように機能するかについての私の理解には、何かが欠けていると確信しています。どんな提案でも大歓迎です。ありがとう!

更新: 1 回だけ実行されるディスパッチャータイマーを使用することになりました。バインディング コードを Tick デリゲートに入れるとうまくいきました。しかし、なぜ上記のコードがそうでないのか、私はまだ興味があります。

0 投票する
1 に答える
3281 参照

wpf - WPF で BeginInvoke をキャンセルする

WPF では、This.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, mydelegete); を呼び出しています。

後でその BeginInvoke メソッドをキャンセルする方法はありますか?

ありがとう

0 投票する
5 に答える
72820 参照

wpf - WPFDispatcher.BeginInvokeおよびUI/バックグラウンドスレッド

WPFのDispatcher.InvokeDispatcher.BeginInvokeの使用法についていくつか説明が必要だと思います。

単純なWPFアプリケーションでボタンを押すと呼び出されるような、長時間実行される「作業」コードがあるとします。

このコードは、 workActionの実行中にユーザーインターフェイスをロックしています。これは、Dispatcherの呼び出しが常にUIスレッドで実行されるためです。

これを想定して、UIとは別のスレッドでworkActionを実行するようにディスパッチャーを構成するためのベストプラクティスは何ですか?私は、BackgroundWorkerworkActionに追加し て、UIがそのようにロックされないようにすることができることを知っています。

BackgroundWorkerを使用する以外に、これを行うためのよりエレガントな方法はありますか?BackgroundWorkerは風変わりだといつも聞いていたので、いくつかの代替案を知りたいと思っています。

0 投票する
1 に答える
576 参照

apache-flex - Arraycollectionはスローされたイベントをキャプチャしませんか?

オブジェクトのコレクションがあり、各オブジェクトは値が更新されるたびにイベントをスローします。イベントを保持するarraycollection(メインクラスを参照)にリスナーを追加してそのイベントをキャプチャしようとしていますが、機能していません。正直なところ、これが正しいアプローチかどうかはわかりません。

Collection.CHANGEの使用は避けています。これは、無限再帰に陥り、最終的にスタックオーバーフローが発生するためです。何か案は?




0 投票する
2 に答える
4310 参照

windows - カーネルとシステムのWindowsプロセス

カーネルとユーザーモードのWindowsプロセスに関連するいくつかの質問があります。

hello worldアプリケーションと、新しいシステムコールfoo()を公開するhello worldドライバーがある場合、カーネルモードになったら何ができるか、何ができないかについて興味があります。

手始めに、新しいhello worldアプリを作成すると、新しいプロセスが与えられます。つまり、独自のユーザーモードVMスペースがあります(シンプルな32ビットウィンドウを維持しましょう)。だから私は「所有」している2GBのスペースを持っているので、心が満足するまで突いて覗くことができます。しかし、私は自分のプロセスに縛られています。私は(共有メモリをまだこれに持ち込まないように)他の人のメモリに触れることはできません。

このhelloworldドライバーを作成し、ユーザーアプリから呼び出すと、私(ドライバーコード)はカーネルモードになります。

最初の説明/質問:私はまだユーザーモードアプリと同じプロセスにいますよね?まだ同じPIDを持っていますか?

メモリの質問:メモリはVMとしてプロセスに提示されます。つまり、1 GBのRAMがある場合でも、4 GBのメモリにアクセスできます(2GBのユーザー/2GBのカーネル-サーバー上のスイッチの詳細や詳細は気にしないでください。ここでの一般的な仮定)。ユーザープロセスとして、カーネルモードのメモリアドレスを確認することはできませんが、ユーザースペースに対してやりたいことは何でもできますよね?

ドライバーコードからHelloWorldドライバーを呼び出した場合でも、ユーザーモードメモリの同じビューがありますか?しかし、今ではカーネルモードのメモリにもアクセスできますか?

このカーネルモードのメモリは共有されていますか(私自身のプロセスのコピーであるユーザーモードとは異なります)?つまり、ドライバーを作成することは、OSである単一のプロセス用のスレッド化されたアプリケーションを作成することに似ています(スケジュールは別として?)

次の問題。ドライバーとして、実行しているプロセスを変更できますか?たとえば、別のアプリ(たとえば、ユーザーモードのウェブサーバー)を知っていて、そのプロセスのVMをロードし、そのプロセスの命令ポインターを変更したり、スタックしたり、プロセスに別のコードをロードしたりしてから、自分のアプリに切り替えますか?(私はここで悪意のあることを何もしようとはしていません。カーネルモードであることが実際に何を意味するのか興味があります)?

また、カーネルモードになったら、OSがプリエンプトしないようにすることはできますか?(Windowsでは)これを行うためにIRQLレベルを設定できると思いますが、Solomonsの本(Windowsの内部...)を読んだ後でも、これを完全には理解していません。IRQL / DPCに直接関連する別の質問をしますが、今のところ、カーネルドライバーがIRQLをHighに設定してシステムを引き継ぐ能力を持っているかどうかを知りたいと思います。

今後さらに増えるが、これらの質問への回答が役立つだろう。

0 投票する
1 に答える
1767 参照

wpf - Dispatcher スレッドは UI コントロールの wpf でどのように機能しますか?

UIコントロールのwpfでDispatcherスレッドはどのように機能しますか?

0 投票する
5 に答える
14157 参照

actionscript-3 - as3 - 親 SWF から子 SWF への dispatchEvent

他のいくつかのswfsをロードするメインの「親」swfが1つあります。メイン SWF で何かが発生した場合、子 SWF の 1 つにそれを伝える必要があります。

これは逆にうまくいくようです。いずれの子も単に dispatchEvent() を実行でき、イベントをリッスンするようにメインの swf をセットアップできます。ただし、親によってディスパッチされたイベントを子 swf にキャッチさせることはできません。それはどのように行われますか?

0 投票する
3 に答える
8235 参照

c# - WPF Dispatcher Invoke の戻り値は常に null

UIElementを使用して呼び出す を返すメソッドへの呼び出しDispatcherがあります。以下はコードです。

ただし、Dispatcher呼び出しの戻り値は常に NULL です。アイデアはありますか?