using: Что происходит?
От: xGOSx  
Дата: 15.11.07 13:28
Оценка:
Привет всем.
Помогите разобраться чего происходит.

      using(IDisposable obj = new AnyDispClass()) 
      {
        CallAsyncOperation(obj);
      }


Поидее этот код должен работать так:
1. оздается обект
2. вызывается асинхронная операция (чегото делается долго в другом потоке)
3. (сразу после вызова асинхронной операции) Выходим из блока using и вызывается obj.Dispose();

Соответсвенно логически предположить что код внутри асинхронной операции должен матюкнуться при обращении к obj.

Странно.. но он не "матерится". Даже если я сделаю задержку в 1 минуту в коде и напишу GC.Collect() после блока using.
---
Вот сразу напрашивается вопрос когда же вызывается obj.Dispose()? Потому что кажется что он не вызывается (покрайней мере там где я этого ожидаю)... Как это работает?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.