2016-12-23 1 views
0

, 나는Task.Delay()의 진행 상태를 확인 하시겠습니까? 장기간 실행 절차의 진행 상황을 확인 하시겠습니까? 절차에서

Random rnd = new Random(); 
var timeout = rnd.Next(3000,10000); 
System.Diagnostics.Debug.WriteLine(timeout); 

await Task.Delay(timeout); 

내가 "Task.Delay (시간 초과)"의 완료 비율을 알고 싶어합니다. 아니면 전체 절차의 완성 된 비율을 얻을 수있는 함수가 있습니까?

일반적으로 장기 실행 작업의 진행 상황을 어떻게 확인할 수 있습니까? 거기에 특정 기능 도움이 있습니까?

감사합니다.

+0

나는 지연이 시작될 때 타이머가 설정되어 있다고 생각합니다. 그런 다음 타이머에서 매초마다 응답을받을 수 있습니다. 그런 다음 percentage = timeCountedByTimer/timeout * 100입니다. 괜찮아요 ?? –

+0

큰 작업을 여러 개의 작은 작업으로 분리 한 다음 하나씩 하위 작업을 실행해야합니다. 진행률은 쉽게 계산할 수 있습니다. 오랜 시간을 지연시키는 것과 같은 큰 과제는 진행 상황을보고 할 수있는 기회를 제공하지 않습니다. –

답변

1

표준 진행 방법은 IProgress입니다. Task.DelayIProgress이 아니므로 큰 지연을 여러 개의 작은 지연으로 분할하여 직접해야합니다.

관련 문제