1) Вы можете использовать свойство Tag своего таймера как userState
void timer1_Tick(object sender, EventArgs e)
{
Timer timer = (Timer)sender;
MyState state = timer.Tag as MyState;
int x = state.Value;
}
2) Вы можете использовать поле ссылочного типа, чтобы прочитать его в теме таймера
void timer1_Tick(object sender, EventArgs e)
{
int x = _myState.Value;
}
3)Вы можете использовать System.Threading.Timer для передачи состояния в обработчик событий таймера
Timer timer = new Timer(Callback, state, 0, 1000);