namespace PizzaSoftware.UI
{
///
/// Interaction logic for LoginForm.xaml
///
public partial class LoginForm : Windo
Well, the simplest approach is to use a DispatcherTimer - which will fire its Tick
event in the dispatcher thread:
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(1000);
timer.IsEnabled = true;
timer.Tick += timer_Elapsed;
Alternatively, you can use Dispatcher.Invoke
/BeginInvoke
to execute a delegate in the dispatcher thread... but that will be more complicated. This would be a better approach if you needed to do significant work on each timer tick and then just update the UI with the result - but as you're not doing much work at all here, it's fine to just do it all in the UI thread.
Didn't realize this was a WPF app. You need to get a hold of the Dispatcher, which you can do in the Constructor:
private Dispatcher _dispathcer;
public LoginForm()
{
InitializeComponent();
_dispathcer = Dispathcer.CurrentDispather;
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
_dispathcer.Invoke(new Action( ()=> { lblCurrentTime.Content = DateTime.Now.ToShortTimeString();});
}