我想使用:
co_await winrt::resume_foreground(window.DispatcherQueue());
(“窗口”的类型是:“winrt::Microsoft::UI::Xaml::Window”)
但我无法编译它,因为
winrt::resume_foreground(Microsoft::System::DispatcherQueue const& dispatcher)
没有定义。
我不能包括#include <winrt/Microsoft.System.h>
哪个包含 DispatcherQueue 类。
我的环境:
Windows 10 Pro、21H1、19043.1083
Visual Studio Community 2019 (16.10.3)
Visual Studio 扩展:Project Reunion 版本 0.8.0.46122163
项目模板:C++、Blank App、打包(WinUI 3 in Desktop)
为了重现错误,我使用了上面的项目模板并将以下方法添加到“App”类中。
应用程序.xaml.h
winrt::Windows::Foundation::IAsyncAction foo();
应用程序.xaml.cpp
winrt::Windows::Foundation::IAsyncAction App::foo()
{
co_await winrt::resume_foreground(window.DispatcherQueue());
}
我收到错误消息:
D:\Solution\WinUi3 Test\WinUi3 Test\App.xaml.cpp(50,21):错误 C2039:“resume_foreground”:不是“winrt”的成员 1>D:\Solution\WinUi3 Test\WinUi3 Test\MainWindow.xaml.h(23): message : see declaration of 'winrt' 1>D:\Solution\WinUi3 Test\WinUi3 Test\App.xaml.cpp(50,38): 错误 C3861: 'resume_foreground': 找不到标识符 1>完成构建项目“WinUi3 Test.vcxproj”——失败。
如果我尝试包含#include <winrt/Microsoft.System.h>
,我会得到:
1>D:\Solution\WinUi3 Test\WinUi3 Test\pch.h(25,10): 致命错误 C1083: 无法打开包含文件: 'winrt/Microsoft.System.h': 没有这样的文件或目录 1>完成构建项目“WinUi3 Test.vcxproj”——失败。
如果我包括#include <winrt/Windows.System.h>
并且#include <winrt/Windows.UI.Core.h>
我得到:
1>D:\Solution\WinUi3 Test\WinUi3 Test\App.xaml.cpp(50,63): error C2665: 'winrt::resume_foreground': 2 个重载都不能转换所有参数类型 1>D:\Solution\WinUi3 Test\WinUi3 Test\Generated Files\winrt\Windows.UI.Core.h(2805,31): 消息:可能是 'winrt::resume_foreground::awaitable winrt::resume_foreground(const winrt ::Windows::UI::Core::CoreDispatcher &,const winrt::Windows::UI::Core::CoreDispatcherPriority) noexcept' (编译源文件 App.xaml.cpp) 1>D:\Solution\WinUi3 Test\WinUi3 Test\Generated Files\winrt\Windows.System.h(4529,31): message : or 'winrt::resume_foreground::awaitable winrt::resume_foreground(const winrt::Windows ::System::DispatcherQueue &,const winrt::Windows::System::DispatcherQueuePriority) noexcept' (编译源文件 App.xaml.cpp) 1>D:\Solution\WinUi3 Test\WinUi3 Test\App.xaml.cpp(50,63): 消息:尝试匹配参数列表时'(winrt::Microsoft::UI::Dispatching::DispatcherQueue)' 1>完成构建项目“WinUi3 Test.vcxproj”——失败。