我有一个模块可以枚举win10 UWP应用程序。通常效果很好。不知何故,一些用户报告该程序卡住了。我发现发生了脱壳。代码片段如下。我想知道是否可以在发生死锁的情况下为此任务设置超时值。
auto task = Concurrency::create_task(package->GetAppListEntriesAsync());
task.then([package, &cs, &pItem](IVectorView<Windows::ApplicationModel::Core::AppListEntry^>^ entryList)
{
for (auto entry : entryList)
{
try
{
auto displayInfo = entry->DisplayInfo;
{
Concurrency::critical_section::scoped_lock lock(cs);
pItem->SetPackageLocalName(displayInfo->DisplayName->Data());
pItem->SetPackageDesc(displayInfo->Description->Data());
}
}
catch (Exception^ e)
{
CCommonFunc::Trace(e->Message->Data());
}
catch (...)
{
CCommonFunc::Trace(L"Unknown Exception");
//ignore
}
}
}).wait();