是否可以指定完成操作后要调用的方法async
?
平台:C++,Windows Phone 8
我需要实现异步发送 UDP 数据包的非阻塞方法。他们有我的方法:
onWriteComplete(int errorCode)
操作完成时回调。
这是我尝试过的:
res = await asyncWrite();
onWriteComplete( res );
但没有运气。
是否可以指定完成操作后要调用的方法async
?
平台:C++,Windows Phone 8
我需要实现异步发送 UDP 数据包的非阻塞方法。他们有我的方法:
onWriteComplete(int errorCode)
操作完成时回调。
这是我尝试过的:
res = await asyncWrite();
onWriteComplete( res );
但没有运气。
在 Windows Phone 8 和 Windows RT 应用程序的所有语言中,异步操作以类似的方式工作。异步操作返回一个 IAsyncOperation 结果,您可以使用该结果链接一个函数以在操作完成时运行。
在 C++ 中,您可以使用create_task和task::then函数以类似于 C# 的方式创建任务并将它们链接起来。查看C++ 中的异步编程(Windows 应用商店应用程序)作为示例。
该示例从 IAsyncOperation 结果创建一个任务,并安排另一个任务在第一个任务完成时执行:
auto deviceEnumTask = create_task(deviceOp);
// Call the task’s .then member function, and provide
// the lambda to be invoked when the async operation completes.
deviceEnumTask.then( [this] (DeviceInformationCollection^ devices )
{
for(int i = 0; i < devices->Size; i++)
{
DeviceInformation^ di = devices->GetAt(i);
// Do something with di...
}
}); // end lambda