gpt4 book ai didi

c# - 调用线程无法访问此对象,因为不同的线程拥有它

转载 作者:行者123 更新时间:2023-12-04 16:25:05 25 4
gpt4 key购买 nike

namespace PizzaSoftware.UI
{
/// <summary>
/// Interaction logic for LoginForm.xaml
/// </summary>
public partial class LoginForm : Window
{
public LoginForm()
{
InitializeComponent();
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
Timer timer = new Timer(1000);
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Enabled = true;
}

void timer_Elapsed(object sender, ElapsedEventArgs e)
{
lblCurrentTime.Content = DateTime.Now.ToShortTimeString();
}
}
}

基本上,我只是想在我的表单上有一个显示当前时间的标签。我正在使用另一个我的 SO 问题中建议的计时器。

我收到标题错误。我能做些什么来解决这个问题?

最佳答案

嗯,最简单的方法是使用 DispatcherTimer - 这将触发它的Tick调度程序线程中的事件:

DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(1000);
timer.IsEnabled = true;
timer.Tick += timer_Elapsed;

或者,您可以使用 Dispatcher.Invoke/ BeginInvoke在调度程序线程中执行委托(delegate)......但这会更复杂。如果您需要在每个计时器滴答声上做大量工作,然后只用结果更新 UI,这将是一种更好的方法 - 但是由于您在这里根本没有做太多工作,所以只需在 UI 中完成所有工作就可以了线。

关于c# - 调用线程无法访问此对象,因为不同的线程拥有它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5423422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com