[メモ]関数をTaskで待機する方法
async void Run(Action callback){
await Task.Delay(3000);
callback?.Invoke();
}
このようなコールバックを受け付ける関数があったとします。
これを待機するには以下のようにします。
var ts = new TaskCompletionSource<bool>();
Run(() => { ts.SetResult(true); });
await ts.Task;
これでTask/awaitで受け取れるようになります