Вы неправильно используете IDisposable: почему using не спасает, когда объект утекает в другой поток
using в C# выглядит как универсальная страховка от утечек ресурсов, пока объект живёт строго внутри одного метода. Но стоит вернут…