ディスパッチャによる天気予報サービスのシミュレーションのサンプル
更新 : 2007 年 11 月
このサンプルでは、ブロック操作によってアプリケーションが応答しない状態になることを避ける方法を示します。
リモート リソースを照会する天気予報サービス アプリケーションをシミュレートします。アプリケーションがリモート リソースを照会している間、UI が応答しない状態になってはなりません。これを解決するために、バックグラウンド スレッドは情報を取得します。スレッドはタスクを完了すると、ジョブを UI スレッドのディスパッチャにプッシュします。
デリゲート オブジェクトで BeginInvoke を呼び出すことにより、バックグラウンド スレッドが作成されます。これは、スレッド プール スレッドを使用する非同期の呼び出しであるため、スレッドの作成に関して他の作業を実行する必要はありません。
リモート サービスへの接続の遅延は、ワーカー スレッドをスリープさせることによってシミュレートされます。ジョブが完了すると、別のジョブが UI スレッドの Dispatcher にプッシュされ、UI が天気予報情報で更新されます。
また、このサンプルでは、アニメーションとストーリーボードも示します。アニメーションの大部分は XAML ファイルで定義されますが、アニメーションの開始と停止は分離コードで処理されます。
このサンプルの詳細については、「スレッド モデル」を参照してください。
このサンプルでは、Windows Presentation Foundation の特定の機能を示します。そのため、アプリケーション開発のベスト プラクティスに従っていません。Windows Presentation Foundation (WPF) と Microsoft .NET Framework のアプリケーション開発ベスト プラクティスの包括的な説明については、適宜、次のトピックを参照してください。
ユーザー補助 - 「ユーザー補助のベスト プラクティス」
ローカリゼーション - 「WPF のグローバリゼーションおよびローカリゼーションの概要」
パフォーマンス - 「WPF アプリケーションのパフォーマンスの最適化」
セキュリティ - 「Windows Presentation Foundation のセキュリティ」
サンプルのビルド
Windows ソフトウェア開発キット (SDK) をインストールして、そのビルド環境のコマンド ウィンドウを開きます。[スタート] メニューの [すべてのプログラム]、[Microsoft Windows SDK] の順にポイントし、[CMD シェル] をクリックします。
サンプルをハード ディスク ドライブにダウンロードします。通常は、ソフトウェア開発キット (SDK) のドキュメントからダウンロードします。
ビルド環境のコマンド ウィンドウからサンプルをビルドするには、サンプルのソース ディレクトリに移動します。コマンド プロンプトで「MSBUILD」と入力します。
Microsoft Visual Studio でサンプルをビルドするには、サンプル ソリューションかプロジェクト ファイルを読み込んで、Ctrl キーと Shift キーを押しながら B キーを押します。
サンプルの実行
コンパイルしたサンプルをビルド環境のコマンド ウィンドウから実行するには、サンプルのソース コード フォルダの下にある Bin\Debug または Bin\Release フォルダで .exe ファイルを実行します。
コンパイルしたサンプルを Visual Studio でデバッグしながら実行するには、F5 キーを押します。
参照
処理手順
計算を長時間実行するシングル スレッド アプリケーションのサンプル