TaskCompletionSource의 setResult 값이 설정 되면 대기 상태에서 다음 구문으로 넘어가는 것을 확인할 수 있었습니다.
TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();
public async void DoConvertWork()
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
var dispTask = Task.Run(async () =>
{
while(!tcs.Task.IsCompleted)
{
Console.WriteLine($"문서를 변환 한지 {(int)stopWatch.Elapsed.TotalSeconds}초가 경과 하였습니다.");
await Task.Delay(1000);
}
});
//TODO 작업 진행
PrintTiffDocument printTiffDocument = new PrintTiffDocument();
printTiffDocument.convertToTiff();
await tcs.Task; // 비동기로 작업 완료 대기 시작
stopWatch.Stop();
await dispTask;
}
public void EndConvert()
{
tcs.SetResult(true); // 작업 완료
}