Метод Dispose не должен возвращаться до тех пор, пока не будут выполнены все ожидаемые эффекты, на которые может опираться другой код. Для Dispose целесообразно отложить выполнение задач очистки, если это не нарушит ожидания других программ. Например, метод Dispose для класса пула соединений может немедленно добавить удаленные соединения в пул, не закрывая их, и иметь фоновый поток, закрывающий соединения, которые некоторое время не использовались. Если существует ограничение на количество открытых соединений, и запрос не может быть удовлетворен, потому что в пуле полно кэшированных (но в настоящее время неиспользуемых) соединений, которые не подходят для текущего запроса, метод «Открыть» должен быть в состоянии ускорить очистку бассейна.