1) You can use the tag property of your timer as 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);