То, что System.Windows.Forms.Timer
не имеет возможности вызывать, не означает, что ваша форма не имеет. Попробуйте мой InvokeEx
из второго (или другого) потока, чтобы включить таймер.
public static class ControlExtensions
{
public static TResult InvokeEx<TControl, TResult>(this TControl control,
Func<TControl, TResult> func)
where TControl : Control
{
if (control.InvokeRequired)
{
return (TResult)control.Invoke(func, control);
}
else
{
return func(control);
}
}
}
При этом у меня работал следующий код:
new Thread(() =>
{
Thread.Sleep(1000);
this.InvokeEx(f => f.timer1.Enabled = true);
}).Start();
И таймер мгновенно ожил через 1 секунду.