1.概要
大量の画像データをダウンロードして表示するなど時間のかかる処理は、非同期処理によってスレッドを分けて実行することで、処理が終わるまで待機するのではなく、その間に別の処理を実行することができます。
解説で使用しているサンプルプロジェクトを以下よりダウンロードすることができます。ぜひご活用ください。
2.動作イメージ
<非同期処理でない場合(同期処理)>
<非同期処理の場合>
3.実装方法(重点事項のみ解説)
3-1.画面の作成
新規に画面を作成し、必要なコントロールを配置します。
画面は「メイン」、画像を読み込む「サブフォーム」、サブフォーム内のリスト表示で使用する「サブフォームリスト」の3つを作成します。
※サブフォームリストについては下記をご参照ください。
3-1-1.メイン
①ボタン
非同期処理を実行するコントロールです。
3-2.ロジックの実装
3-2-1.非同期処理実行
メイン画面の「①ボタン」で実行する処理です。サブフォームに遷移し、画像読み込みロジックを実行します。次のとおり、同期処理と非同期処理を比較すると、1行だけの違いです。
<同期処理>
<非同期処理>
それぞれの処理を、詳しく比較します。
<同期処理> | <非同期処理> |
---|---|
このように、コンポーネントに「制御文」の「非同期処理実行」を設定し、スレッドに「新規スレッド」を設定することで、動作イメージのような非同期処理実行を実現することができます。
3-3.画面からのロジック呼び出し
メイン画面の「①ボタン」に、「3-2-1.非同期処理実行」を「実行処理」として設定します。
以上で実装は完了です。