Попытка рефакторинга кода, но с ошибкой во время выполнения - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь провести рефакторинг своего кода ниже, чтобы повысить производительность UpdateSites (). GetNewSite () занимает около 500 мс, и будет несколько сайтов, которые UpdateSites () обрабатывает. Моя идея - запускать выборки параллельно. Когда я тестирую свое решение, Visual Studio выдает ошибку:

Visual Studio Just-In-Time Debugger An unhandled Microsoft .NET Framework exception occurred in w3wp.exe [3656]. Just-In-Time debugging this exception failed with the following error: No installed debugger has Just-In-Time debugging enabled. In Visual Studio, Just-In-Time debugging can be enabled from Tools/Options/Debugging/Just-In-Time.

Запуск моей программы с моим исходным кодом не вызывает ошибку. Я плохо справился с рефакторингом?

// original
await UpdateSites(currentUserSites);
private async Task<List<Site>> UpdateSites(List<Site> sites)
{
    foreach (var site in sites)
    {
        var newSite = await GetNewSite(site.SiteId);
        site.address = newSite.address;
        site.phone = newSite.phone;
    }
    return sites;
}


// refactored
UpdateSites(currentUserSites);
private void UpdateSites(List<Site> sites)
{
    Parallel.ForEach(sites, async site =>
    {
        var newSite = await GetNewSite(site.SiteId);
        site.address = newSite.address;
        site.phone = newSite.phone;
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...