c++代码求解释,看不懂

return Concurrency::create_task(m_mediaCapture->StartRecordToStorageFileAsync(encodingProperties, saveFile)).then(this
{
auto lock = m_lock.LockExclusive();
OutputDebugString(L"Recording Started\n");
m_currentState = Recording;
});

                            *******************************
                            完全看不懂的我眼泪掉下来!!!

这个是C++ 14的Lambda表达式,这里用了“CPS风格”(Continuation Programming Style)来实现异步操作。
也就是说传递一个高阶函数(类似回调)给异步函数,让函数执行完执行

http://www.nowamagic.net/academy/detail/1220553
http://www.zhihu.com/question/24453254