Windows Store App使用IAsyncOperationWithProgress的一個例子

來源:互聯網
上載者:User

IAsyncOperationWithProgress介面定義及其Progress屬性定義原型如下:

generic<typename TResult, typename TProgress>public interface class IAsyncOperationWithProgress : IAsyncInfo

property AsyncOperationProgressHandler<TResult, TProgress>^ Progress {    AsyncOperationProgressHandler<TResult, TProgress>^ get();   void set (AsyncOperationProgressHandler<TResult, TProgress>^ value);}

public delegate void AsyncOperationProgressHandler(  IAsyncOperationWithProgress<TResult, TProgress> asyncInfo,   TProgress progressInfo)

例子如下:

void Test(){    Windows::Foundation::IAsyncOperationWithProgress<double, int>^ async = create_async([](progress_reporter<int> report){        double n = 12.34;        for (int i = 0; i < 10; ++i)        {            concurrency::wait(1000);            n += 1.0;            report.report((i + 1) * 10);        }        return n;    });    async->Progress = ref new AsyncOperationProgressHandler<double, int>([](IAsyncOperationWithProgress<double, int>^ op, int pro){        OutputDebugString(L"progress:");        OutputDebugString(pro.ToString()->Data());        OutputDebugString(L"%...\n");    });    create_task(async).then([](double n){        OutputDebugString(L"result = ");        OutputDebugString(n.ToString()->Data());        OutputDebugString(L"\n");    });}

輸出結果如下:
progress:10%...
progress:20%...
progress:30%...
progress:40%...
progress:50%...
The thread 0xed4 has exited with code 0 (0x0).
progress:60%...
progress:70%...
progress:80%...
progress:90%...
progress:100%...
result = 22.34

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.