UIツリー:2010年4月ツールキットのlistboxdragdroptarget silverlight 4 - UIスレッドのスケジューリングの最速/簡単な方法は?
- リストボックスUI内の実際のリストボックス項目の一部であるため、潜在的なドラッグアンドドロップ操作)
- 全体リストボックスアイテムはドラッグできます(リストボックス内で並べ替えるか、別のリストボックスに移動することができます)。クリックハンドラーをtに保つボタンをドラッグすることを禁止する
現在のところ、いずれかのボタンのクリックハンドラ(上記を参照)の時間がかかるようです(これは、さまざまなUIの変更を引き起こすビューモデルの更新をします。 UIスレッドAFAICT上にある必要があります)、非常に頻繁にドラッグイベントが開始されます。
このコードをクリックハンドラから取得するための最初の考えは、DoWorkを持たないBackgroundWorkerを作成し、それをすべてRunWorkerCompletedに入れることです。しかし、それはBackgroundWorkerとヘビー級の酷使の両方のように感じます。私が望む効果は、同じスレッド(UIスレッド)上のPostThreadMessageに似ていますが、それほどすばやく行う方法については何も出ていません。
私は確かにスレッドプールや新しいスレッドで何かをキューに入れて、それをUIスレッドに戻してマーシャリングすることもできますが、やはりそれはかなり乱用のようです。
良いアイデア - SilverlightバージョンはDispatcherPriorityを持っていないようですが、実際にはすぐに戻るためにクリックハンドラが必要です。これは非常に実行可能なオプションのようです。 –