0

私はWindowsモバイルアプリケーションに取り組んでいます。実行に数秒かかる webservice の呼び出しがあります。実行前にメッセージを表示しようとしています。

lblSearchMessage.Text = "Please wait...";
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";

「お待ちください」メッセージが表示されない問題。実行すると、リクエストが完了するまでラベルはクリアのままで、最終的に「完了」メッセージのみが表示されます。

4

2 に答える 2

1

実行時間の長いタスクをバックグラウンド スレッドに委任するには、C# のBackgroundWorkerorTaskまたは機能 (使用しているドット ネット フレームワークのバージョンによって異なります) を使用する必要があります。awaitメイン スレッドで UI を更新すると、変更がすぐに反映されます。UI をブロックし、ユーザーに悪い印象とエクスペリエンスを与えるため、メイン スレッドで実行時間の長いタスクを実行しないでください。

BackgroundWorkerクラスを見てください。また、アプリケーションでの使用方法を明確にする簡単なチュートリアルもあります。

バックグラウンドワーカーを開始する前に

lblSearchMessage.Text = "Please wait...";

バックグラウンド作業が完了したら、

lblSearchMessage.Text = "Completed";

于 2013-06-11T06:03:29.150 に答える