gpt4 book ai didi

windows - 如何将 WinRT 异步任务集成到现有的同步库中?

转载 作者:可可西里 更新时间:2023-11-01 10:56:31 25 4
gpt4 key购买 nike

我们有一个长期建立的、非常多平台的代码库,目前正在移植到 WinRT。我们面临的挑战之一是如何处理 WinRT 的异步风格。

例如,我们不确定如何处理 WinRT 的异步文件操作。不出所料,我们代码库的 API 是同步的。一个典型的例子是我们的 File::Open 函数,它尝试打开一个文件并返回成功或失败。我们如何在调用 WinRT 函数的同时保持函数的行为相同?

请注意,不幸的是,我们受到遗留问题的限制:我们不能简单地将 API 更改为异步。

谢谢!

最佳答案

我假设您希望重新实现该库以支持 WinRT 应用程序,同时不更改 API 的定义,以便现有应用程序保持兼容。

我认为如果在调用异步方法时不包含 await 关键字就不会执行异步操作,它应该以同步方式执行。但如果该方法返回一个值(以我的经验),它真的不起作用。

我一直在使用这段代码来同步文件操作:

IAsyncOperation<string> contentAsync = FileIO.ReadTextAsync(file);
contentAsync.AsTask().Wait();
string content = contentAsync.GetResults();

关于windows - 如何将 WinRT 异步任务集成到现有的同步库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com