以下是我的代码(C++),在第二行报错。
auto a = Windows::ApplicationModel::Core::CoreApplication::CreateNewView();
auto window = a->CoreWindow; //出错位置
auto viewId = Windows::UI::ViewManagement::ApplicationView::GetApplicationViewIdForWindow(window);
create_task(Windows::UI::ViewManagement::ApplicationViewSwitcher::TryShowAsStandaloneAsync(viewId)).then([this](bool a){
int c = 0;
c++;
});
错误:
0x774A4DBD 处(位于 ??.exe 中)最可能的异常: Microsoft C++ 异常: Platform::COMException ^,位于内存位置 0x0379E13C 处。 HRESULT:0x8000001F 对某个 ASTA 的 COM 调用被阻止,因为调用链是在另一个 ASTA 中生成或通过它传递的。此调用模式易于导致死锁,并且单元调用控制不允许使用此调用模式。
WinRT 信息: 对某个 ASTA (线程 3092)的 COM 调用(IID: {638BB2DB-451D-4661-B099-414F34FFB9F1},方法索引: 6)被阻止,因为调用链是在另一个 ASTA (线程 3508)中生成或通过它传递的。此调用模式易于导致死锁,单元调用控制不允许使用此调用模式。
这是怎么回事?应该怎么解决?(我看了几个文档都没能找出解决方案)
谢谢