Я использую библиотеку, основанную на HttpContext.Current. Библиотека - это Facebook C # SDK, но мой вопрос должен применяться и в других сценариях. Я бы хотел использовать эту библиотеку изнутри параллельного потока. Однако HttpContext.Current недоступен в параллельном потоке, поэтому я думаю о том, чтобы кэшировать его в локальную переменную, а затем установить в параллельном потоке следующим образом:
var httpContext = HttpContext.Current;
Parallel.ForEach(items, item => {
try {
HttpContext.Current = httpContext;
// Call a method that relies on HttpContext.Current
} finally {
HttpContext.Current = null;
}
});
Вы не предвидите в этом ничего плохого? Есть ли какие-то последствия для этого?