我有一个win表单,它使用System.Timers.Timer。当计时器执行时,它更新mainForm上的一个变量。我得到一个例外告诉我,主窗体已被处置。我做错了什么。如果我更新变量,程序运行正常。如果我尝试读取变量并将其发布到消息框中,则一切正常。只有当我尝试从计时器事件处理程序中更改变量的值时,才会得到异常。怎么回事?
//works
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
MessageBox.Show(myVarFromMainForm);
}
//does not work
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
myVariableFromMainForm = 10;
}