Так как я обновил свой xubuntu до 17,04 (через-обновление-версии), я получаю шлепающийся звук для большого количества "невозможных" действий. Это является в масштабе всей системы и очень раздражающим, и я хочу избавиться от него. Никакие звуковые настройки даже НЕ СУЩЕСТВУЮТ в параметрах настройки системы.
Вот некоторые примеры, когда звук уходит:
Я не могу думать ни о чем больше, но этого достаточно для сведения меня с ума; это могло бы дать Вам общее представление.
Помогите очень ценивший. Спасибо, p
Я могу просто назвать MySW.Dispose () и пропустить Завершение даже при том, что это обеспечивается?
Да, это - то, для чего это.
Есть ли какие-либо Потоковые реализации, которые не работают как ожидалось (Как CryptoStream)?
Безопасно предположить это, если объект реализует IDisposable
, это избавится от себя правильно.
Если бы это не делает, то это было бы ошибкой.
В противном случае затем следующее просто плохому коду:
Нет, тот код является рекомендуемым способом иметь дело с объектами та реализация IDisposable
.
Более превосходная информация находится в принятом ответе, чтобы Закрыть и Расположить - чтобы звонить?
Я смотрел в источнике .NET для Потокового класса, он имел следующее, которое предположит, что да Вы можете...
// Stream used to require that all cleanup logic went into Close(),
// which was thought up before we invented IDisposable. However, we
// need to follow the IDisposable pattern so that users can write
// sensible subclasses without needing to inspect all their base
// classes, and without worrying about version brittleness, from a
// base class switching to the Dispose pattern. We're moving
// Stream to the Dispose(bool) pattern - that's where all subclasses
// should put their cleanup starting in V2.
public virtual void Close()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public void Dispose()
{
Close();
}
Для объектов, которые должны быть вручную закрыты, каждое усилие должно быть приложено для создания объекта в блоке использования.
//Cannot access 'stream'
using (FileStream stream = File.Open ("c:\\test.bin"))
{
//Do work on 'stream'
} // 'stream' is closed and disposed of even if there is an exception escaping this block
// Cannot access 'stream'
Таким образом никогда нельзя неправильно получать доступ к 'потоку' из контекста пункта использования, и файл всегда закрывается.
Как Daniel Bruckner упомянул, Расположите, и Близко эффективно то же самое.
Однако Поток НЕ называет Сброс (), когда он расположен/закрыт. FileStream (и я принимаю любой другой Поток с механизмом кэширования), действительно называет Сброс () при расположении.
Если Вы расширяете Поток или MemoryStream и т.д., который необходимо будет реализовать вызов для Сбрасывания (), когда расположил/закрыл, если это необходимо.