◇ "EasyInvoke.sln"をVB.NETで開く

◇ DoTaskメソッドのコードを確認
	→ 1秒おきにリストボックスに項目が追加される

◇ AddItemsメソッドのコードを確認
	→ ここではAppDomain.GetCurrentThreadIdで実行されているスレッドのIDをあわせて表示させるようにしている
	→ UIスレッドとは別のスレッドから呼ばれたどうかをInvokeRequiredプロパティで審査している
	→ 別スレッドから実行されている場合は、Me.Invokeでスレッド間マーシャリングしている

◇ TaskCompleteメソッド（非同期完了コールバック）のコードも確認
	→ EndInvokeで非同期で実行したメソッドの戻り値を取得

◇ [CTRL]+[F5]で実行
	→ 同期で実行する（このときUIが固まっていることを確認）

◇ [非同期で実行]チェックボックスをチェックして[START]ボタンをクリック
	→ このときにCLRのスレッドプールのスレッド上でDoTaskメソッドが実行される
	→ ここから呼び出されるAddItemsメソッドもUIスレッドではないので Invokeされる
	→ リストボックスに追加するコードが常にUIスレッドから実行されていることを確認
	→ 当然、非同期なので実行中のUIが固まらない！

◇ [スタート]ボタンを連打して楽しもう

