如何为Concurrency :: create_task对象设置任务超时

时间:2019-02-18 08:27:20

标签: concurrency c++-cli

我有一个模块可以枚举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();

0 个答案:

没有答案