win8异步有两种模式:PPL task, WinRT的异步API 和混合模式
异步编程通常在系统线程库分配线程,属于多线程编程。这一点和以前windows的编程接口有很大的不同。
win8异步编程大量使用了Lambda表达式(http://technet.microsoft.com/zh-cn/library/dd293603(v=vs.110).aspx)
常用的语法:[](){}
[]表示函数体带入的局部变量,默认值传递,加&表示引用传递
()表示传入的参数
{}表示函数体
并行模板库PPL task:
task<void> t([](){
int i=0;
i++;
})
WinRT异步API:
IAsyncAction、IAsyncActionWithProgress、IAsyncOperation 和 IAsyncOperationWithProgress
IAsyncOperationWithProgress<SyndicationFeed, RetrievalProgress> op; op = client.RetrieveFeedAsync(feedUri); op.Completed = (info, status) => { SyndicationFeed feed = info.GetResults(); UpdateAppWithFeed(feed); };
混合模式:用PPL task封装了WinRT异步API
参考:http://blogs.msdn.com/b/windowsappdev_cn/archive/2012/03/26/windows.aspx