2016-05-31 121 views
1

我在Windows 10通用应用程序中遇到挂起功能问题。对于第一次登录,我有一些逻辑请求API,以加载刚刚登录的用户信息。在此初始加载期间,如果按下“开始”按钮,应用程序应该通过暂停,但不会达到“OnSuspending”。 我按照一些步骤来解决问题。在生成的小型转储我发现一些奇怪的事情:Windows 10通用应用程序暂停死锁

EXCEPTION_CODE: (NTSTATUS) 0xc0000194 - {EXCEPTION} Possible deadlock condition. 

STACK_TEXT:  
ntdll!NtWaitForMultipleObjects+0x6 
KERNELBASE!WaitForMultipleObjectsEx+0x112 
twinapi_appcore!Event::WaitWithFreeUnusedLibraries+0x88 
twinapi_appcore!Windows::ApplicationModel::Core::CoreApplicationFactory::RunInternal+0x208 
twinapi_appcore!Windows::ApplicationModel::Core::CoreApplicationFactory::Run+0x12 
Windows_UI_Xaml!RunInActivationMode+0x58 
Windows_UI_Xaml!DirectUI::FrameworkApplicationFactory::Start+0x32 
0x2d0684 

BUCKET_ID: c0000194_twinapi_appcore!Event::WaitWithFreeUnusedLibraries+88 

我可以重现它只能在设备而不是模拟器。

回答

1

在Universal Windows 10 Apps中,如果您想执行任何后台操作,您应该使用后台任务。 您的应用程序处于死锁状态的原因是您开始调用Api并在同一时间暂停应用程序。 请尝试使用下面的教程,展示了如何实现后台任务(有很好的说明):

https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-task

您也可以使用现成的样品从我的GitHub:

https://github.com/Daniel-Krzyczkowski/Windows10/tree/master/BackgroundTasksDemo