Я не вижу проблемы с использованием Session - это в основном многопоточный словарь . Возможно, вам нужно убедиться, что ваш фоновый поток блокируется SyncRoot ; класс Page делает это автоматически.
Конечно, есть и другие варианты - статические переменные (но затем вы сталкиваетесь с проблемами в AppDomain) или внеполосные механизмы (то, чем является Session), такие как БД или служба обмена сообщениями. Если, конечно, у вас нет других потребностей в этих технологиях, Session, вероятно, будет самым простым.
Несколько предостережений, о которых я могу подумать:
- Если время сеанса истекает, что происходит при записи в него из фонового потока? Исключение? Поддерживает это?
- Как вы обнаруживаете, что фоновый поток вышел ненормально? Сохранить поток в сеансе?
- Что произойдет с Session, если в фоновом потоке есть необработанное исключение *1019*?