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