У вас явно есть что-то внутри DoSomeWork (), которое не является поточно-ориентированным.Наиболее вероятным кандидатом на это является некоторый статический код, поскольку это будет означать, что в памяти есть только одна копия этого конкретного фрагмента кода.Один экземпляр DoSomeWork () мог бы отключить контекст, а другой экземпляр мог бы определить состояние статического метода, что дало бы вам некоторые непредсказуемые результаты.
Другие вещи могут включать в себя неправильное использование внедрения зависимости,разделяемый одноэлементный объект, некоторые библиотеки неправильно используются как асинхронные или пара других вещей - об этом говорил Дрю, когда просил дополнительную информацию.