Единственный правильный способ избавиться от одноразовых членов класса IDisposable
состоит в том, чтобы сделать это внутри его метода Dispose(bool disposing)
(см. Статью MSDN ).Другими словами, вы можете открыть автоматически сгенерированный файл Form.Designer.cs
и поместить его в соответствующий метод.
С другой стороны, если вы добавите Timer
через VS Designer (вместо того, чтобы создавать его самостоятельно),он будет добавлен в контейнер components
:
// autogenerated inside Form.Designer.cs, InitializeComponent() method
this.timer = new System.Windows.Forms.Timer(this.components);
, а затем правильно утилизирован при удалении члена components
:
// autogenerated inside Form.Designer.cs, Dispose(bool disposing) method
if (disposing && (components != null))
{
components.Dispose();
}
Если вы хотите сделать это самостоятельно, сохранитеИмейте в виду, что дизайнер не создает components
, если не считает, что это необходимо.Таким образом, components
может быть null
в вашем случае.
Самый простой способ решить эту проблему: добавить таймер, перетащив его из панели инструментов, а затем запустить его внутри обработчика Form_Load
.