Как может быть что-то вроде ThreadStatic в задаче TPL? Мое понимание ( "Wrox Professional Parallel Programming with С#", стр. 74) заключается в том, что Task может переключаться с одного потока на другой во время выполнения.
Что я хочу делать?
Я хочу поддерживать идентификатор сеанса внутри статического класса, поэтому мне не нужно передавать этот идентификатор ко всем моим методам. Моя библиотека имеет методы типа login(id), logout(id) и многие методы, которые работают с учетными данными, связанными с этим идентификатором. Но я не хочу передавать этот идентификатор каждому методу. Я могу убедиться, что моя библиотека вызывается в другом потоке для разных сеансов. Таким образом, сохранение id внутри login() в переменной ThreadStatic будет работать.
Теперь я хочу использовать TPL Tasks, созданные для меня ThreadPool. Я могу передать свой идентификатор сеанса в Задачу, но если я сохраню этот идентификатор внутри переменной ThreadStatic, он не сохранится, если моя задача переключит потоки.