Kentico API и многопоточность - PullRequest
0 голосов
/ 13 января 2019

Просто быстрый вопрос об API Kentico и получении страниц при многопоточности.

У меня есть простой цикл Parallel.ForEach, который извлекает страницу из дерева на основе зацикленной информации. Это отлично работает в 1 потоке, но как только вы попытаетесь запустить его в нескольких потоках, вы получите объект, не установленный для экземпляра исключения объекта.

Ниже приведен фрагмент кода, который вызывает исключение, переменная дерева устанавливает нормально, но когда я пытаюсь установить переменную страницы, я получаю ошибку. Все переменные, используемые в запросе, имеют правильные значения, так же как и при его запуске в 1 потоке.

var tree = new TreeProvider(MembershipContext.AuthenticatedUser);
var page = tree.SelectNodes(className)
                .Published()
                .OnCurrentSite()
                .Culture(cultureCode)
                .FirstOrDefault();
return page;

Разрешает ли API дерева kentico многопоточность? или мне нужно назвать что-то другое, чтобы добиться этого?

Спасибо

1 Ответ

0 голосов
/ 14 января 2019

Решением этой проблемы стал контекст сайта, который нужно было повторно инициализировать для каждого потока.

...