使用C++ Coroutines技术简化UWP的异步代码

[原文发表地址] Using C++ Coroutines to simplify async UWP code [原文发表时间] 2016/4/4 通用windows平台(UWP)引入了许多异步API,目前已经有近1700个API。每个API之间的切换只需要50毫秒左右即可完成异步模式。 编写异步模式的代码并不是轻松的事情, 尤其在C++中必须创建一个PPL任务并且在lambdas表达式中使用continuation (.then)。 实际上许多情况代码本身并不难写, 只不过阅读性不佳。 C++ Coroutines技术可以简化编写的异步代码, 使代码可读性提高,易于维护编写。 下面我们直接看实例: 这段代码中我们尝试打开图片,使用 PickSingleFileAsync和OpenAsync:   void AsyncDemoForBuild::MainPage::PickImageClick(Platform::Object^ sender,        Windows::UI::Xaml::RoutedEventArgs^ e) {        using namespace Windows::UI::Xaml::Media::Imaging;        using namespace Windows::Storage::Pickers;        using namespace concurrency;          auto picker = ref new FileOpenPicker();        picker->FileTypeFilter->Append(L”.jpg”);        picker->SuggestedStartLocation…

0