MVVMとWPFが初めてです。私のWPFアプリケーションは2分ごとにWebサービスを呼び出し、UIにレスポンスを表示します。 UIのボタンをクリックして、同じWebサービスを手動で呼び出す機会を提供します。私のWebサービスタイムアウトは5000msです。私のQは、Webサービスが1000ms以上かかる場合ですUIのハンティングを回避する方法。 Plzは実装のヒントを提供しますWPFアプリケーションでUIをハングしないようにする
2
A
答えて
5
これは、複数のスレッドを実装するのに適しています.1つのスレッドですべてのWebアプリケーション通信を実行すると、メインUIスレッドがユーザーの入力に応答できるようになります。スレッドの使用に関する
3
方法:以下の
は、いくつかのリンクあなたが軌道に乗るためにありますか? MSDNには、基本的に2007年に戻ってから良いのライトアップがあります。
WPF Threads: Build More Responsive Apps with The Dispatcher
あなたが唯一のディスパッチャに注意を払うだけでなく、BackgroundWorker
上の第二いないことを確認してください。
あなたは(それがケースかもしれないように思える)すべてのスレッドに慣れていない場合、あなたはおそらく、MSDNからプレーンスレッディングの基礎から始めるべきでは:
2
1
基本的に、あなたが実行するための任意の時間がかかることがUIスレッド上の任意の仕事をしているべきではありません。ビューモデルには、ビューのボタンにバインドされたCommandオブジェクトのフォームが必要です。そのコマンドは、別のスレッドで非同期にWebサービス呼び出しを呼び出す必要があります。そうすれば、コマンドは非常に迅速に返るので、UIが戻ってくるのを待つことはありません。非同期呼び出しが返ってきたら、必要なUIの更新を処理できます。
0
バックグラウンドワーカーを使用し、データをUIに戻す場合は、Dispatcherを使用します。 .net 4.0を使用している場合は、タスクを使用します。
関連する問題
- 1. c#WPF UIがハングするUIスレッドのデータを更新する
- 2. WPF DataGridは、リフレッシュ時にUIをハングします
- 3. WPFアプリケーションでUWP UIを使用する
- 4. JavaFx - InetAddressからのタイムアウトを待っている間にUIがハングしないようにする
- 5. WpFアプリケーションのレスポンシブUI
- 6. IHTMLDocumentを編集しようとするとアプリケーションがハングする
- 7. WPFブックのようなアプリケーション
- 8. QDataWidgetMapper.addMapping(...)によってアプリケーションがハングする
- 9. WPFアプリケーションでブロックするテキストに奇妙なUIエラーが発生しました
- 10. Webサービスにハングしているアプリケーション
- 11. JDBC呼び出しによりUIがハングする
- 12. WPFアプリケーションのUIをスレッドから更新するにはどうすればよいですか?
- 13. LOBアプリケーション用のWPF UIレイアウト
- 14. ターミナルがハングしないようにffmpegコマンドを修正するにはどうすればよいですか?
- 15. __psynch_mutexwaitでアプリケーションがハングする
- 16. Nodejsアプリケーションが重いリクエストでハングする
- 17. Javaがハングしているようだ
- 18. Office 2010のようなWPFアプリケーションでAeroガラスにグラデーションフェードを行うにはどうすればよいですか?
- 19. BufferedReader.readLine()がハングしないようにするにはどうすればよいですか?
- 20. ToListAsyncを使用したEFクエリがWPFアプリケーションでハングするのはなぜですか?
- 21. カスタムUI要素をTableViewControllerでスクロールしないようにする
- 22. MVVM WPFアプリケーションでイメージリソースにどのようにアクセスしますか?
- 23. テキストボックスの入力によってWinformsのUIがハングするC#
- 24. WPFアプリケーションがデバッグしない
- 25. アプリケーションは隠しモードでハングします
- 26. wpfアプリケーションの独自のカスタム配置UIを達成するにはどうすればいいですか?
- 27. ssh実行中にRailsがハングしないようにするには?
- 28. GUIがハングしないようにQTimerを起動する方法 - RestartStoppedProcess() - コード
- 29. 私のアプリケーションでは、2つのapisを通信するハングがハングします
- 30. VueJS/Semantic UIにフォームを送信しないようにする
Webサービスでタイムアウトを増やせませんか? –
@ArsenMkrt - 私はUIが応答するために5秒待つことを望みません。 –