닷넷 비동기

IProgress<T>로 진행상황 표시하기

하_늘_바_람 2023. 5. 25. 11:32
async Task MyMethodAsync(IProgress<double> progress = null) {
    bool done = false;

    double percentComplete = 0;

    while (!done) {

        progress?.Report(percentComplete);
    }
}

async Task CallMyMethodAsync() {
    var progress = new Progress<double>();
    progress.ProgressChanged += (sender, args) => {
        // Report 메소드를 실행할 때마다 args로 해당 퍼센트가 넘어온다.
        // 여기에서 필요한 상태를 표시하면 된다.
    };

    await MyMotherAsync(progress);;
}