C#/XAML アプリのバックグラウンド スレッドで実行する必要があるアクティビティがあるため、次のようにしています。
Task.Factory.StartNew(() => ImportFile());
スレッドベースの作業が完了した後にアクションを実行する必要がある別のコードに Task 値を返しています。コードは次のようになります。
Action<Task> finalise = async delegate { await FinishImport(dbList); };
dbList.ImportFileAsync().ContinueWith(finalise);
ただし、コードをFinishImport
実行すると、バックグラウンド スレッドが終了する前にデバッグ ステートメントが実行されます。
ここで私は何を誤解していますか?ContinueWith
目的のタスクが完了した後に継続コードを実行することがポイントだと思いました。