Why my DispatcherTimer don't work with Windows Service .
The purpose behind that i want use DispatcherTimer for check a windows service License
public OIMService()
{
InitializeComponent();
_dispatcherTimer = new DispatcherTimer();
if (!System.Diagnostics.EventLog.SourceExists("OIM_Log"))
{
EventLog.CreateEventSource("OIM_Log", "OIMLog");
}
EventLog.Source = "OIM_Log";
EventLog.Log = "OIMLog";
_helpers = new ValidationHelpers();
StartTimer();
}
protected override void OnStart(string[] args)
{
System.Diagnostics.Debugger.Launch();
if (_helpers.IsValid())
{
ConfigureServer();
StartTimer();
}
else
{
this.Stop();
}
}
private void StartTimer()
{
const int time = 10;
_dispatcherTimer.Tick += new EventHandler(DispatcherTimerTick);
_dispatcherTimer.Interval = new TimeSpan(0, 0, Convert.ToInt32(time));
_dispatcherTimer.IsEnabled = true;
_dispatcherTimer.Start();
}
private void DispatcherTimerTick(object sender, EventArgs e)
{
EventLog.WriteEntry("test test test ...");
}
The point of DispatcherTimer
is to fire its Tick
event on the dispatcher thread. That's important because you can only manipulate Silverlight/WPF UI elements on the dispatcher thread. In a Windows Service, there is no dispatcher thread... there's no UI to manipulate. Why would you want to use a DispatcherTimer
instead of (say) System.Timers.Timer
?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With