ディスパッチャによる天気予報サービスのシミュレーションのサンプル

更新 : 2007 年 11 月

このサンプルでは、ブロック操作によってアプリケーションが応答しない状態になることを避ける方法を示します。

リモート リソースを照会する天気予報サービス アプリケーションをシミュレートします。アプリケーションがリモート リソースを照会している間、UI が応答しない状態になってはなりません。これを解決するために、バックグラウンド スレッドは情報を取得します。スレッドはタスクを完了すると、ジョブを UI スレッドのディスパッチャにプッシュします。

デリゲート オブジェクトで BeginInvoke を呼び出すことにより、バックグラウンド スレッドが作成されます。これは、スレッド プール スレッドを使用する非同期の呼び出しであるため、スレッドの作成に関して他の作業を実行する必要はありません。

リモート サービスへの接続の遅延は、ワーカー スレッドをスリープさせることによってシミュレートされます。ジョブが完了すると、別のジョブが UI スレッドの Dispatcher にプッシュされ、UI が天気予報情報で更新されます。

また、このサンプルでは、アニメーションとストーリーボードも示します。アニメーションの大部分は XAML ファイルで定義されますが、アニメーションの開始と停止は分離コードで処理されます。

このサンプルの詳細については、「スレッド モデル」を参照してください。

このサンプルでは、Windows Presentation Foundation の特定の機能を示します。そのため、アプリケーション開発のベスト プラクティスに従っていません。Windows Presentation Foundation (WPF) と Microsoft .NET Framework のアプリケーション開発ベスト プラクティスの包括的な説明については、適宜、次のトピックを参照してください。

ユーザー補助 - 「ユーザー補助のベスト プラクティス

ローカリゼーション - 「WPF のグローバリゼーションおよびローカリゼーションの概要

パフォーマンス - 「WPF アプリケーションのパフォーマンスの最適化

セキュリティ - 「Windows Presentation Foundation のセキュリティ

Download sample

サンプルのビルド

  • Windows ソフトウェア開発キット (SDK) をインストールして、そのビルド環境のコマンド ウィンドウを開きます。[スタート] メニューの [すべてのプログラム]、[Microsoft Windows SDK] の順にポイントし、[CMD シェル] をクリックします。

  • サンプルをハード ディスク ドライブにダウンロードします。通常は、ソフトウェア開発キット (SDK) のドキュメントからダウンロードします。

  • ビルド環境のコマンド ウィンドウからサンプルをビルドするには、サンプルのソース ディレクトリに移動します。コマンド プロンプトで「MSBUILD」と入力します。

  • Microsoft Visual Studio でサンプルをビルドするには、サンプル ソリューションかプロジェクト ファイルを読み込んで、Ctrl キーと Shift キーを押しながら B キーを押します。

サンプルの実行

  • コンパイルしたサンプルをビルド環境のコマンド ウィンドウから実行するには、サンプルのソース コード フォルダの下にある Bin\Debug または Bin\Release フォルダで .exe ファイルを実行します。

  • コンパイルしたサンプルを Visual Studio でデバッグしながら実行するには、F5 キーを押します。

参照

処理手順

計算を長時間実行するシングル スレッド アプリケーションのサンプル

Web ブラウザのマルチスレッド処理のサンプル

システム タイマによるコマンド ソースの無効化のサンプル

概念

スレッド モデル