0

私は、複数のソケット操作を一貫して実行するアプリケーションを作成しており、javascript パラダイム ( eventlistener.on(, ) / eventlistener.emit( ) ) に似たイベント メッセージング システムを備えています。TextBlock xaml 要素にデバッグ情報を追加する非同期呼び出し内からデバッグ情報を出力します。非同期関数の外で同じイベントを発行すると、正常に動作します。イベントのオン/エミット呼び出しをミューテックスでラップしました。これは、TextBlock への書き込みを許可するのに十分であると想定しました。

イベント プロセスを視覚化するには:

[class]->listener->emit(< type>,< data>)->[Dispatcher]->[Listeners(< type>)]->lambda([class],< data>)

私は、WinRT の非同期関数と Windows 8 UI/Metro/Modern のイデオロギーに十分に精通しておらず、スレッドから TextBlock を追加する特別な方法があるかどうか、またはこれを行うためのより良い方法があるかどうかを知ることができません。

要するに、非同期関数から Textblock を追加することは可能ですか?もしそうなら、何か特別なことをする必要がありますか?

4

1 に答える 1

1

更新が UI/ディスパッチャー スレッド上にある限り、非同期関数から TextBlock を更新することを妨げるものは何もないはずです。特定のスレッドでの非同期関数呼び出しは、通常、同じスレッドで終了します。

于 2013-01-30T20:01:50.460 に答える