在线程中我想更改标签的值
我发现我必须使用 Dispatcher.Invoke。
试过这段代码:
Me.Dispatcher.Invoke(DispatcherPriority.Background, (Function() Me.Label2.Content = "Scanning done."))
但它不会改变价值。
我究竟做错了什么?
@edit:我的目标框架是 4.0
在线程中我想更改标签的值
我发现我必须使用 Dispatcher.Invoke。
试过这段代码:
Me.Dispatcher.Invoke(DispatcherPriority.Background, (Function() Me.Label2.Content = "Scanning done."))
但它不会改变价值。
我究竟做错了什么?
@edit:我的目标框架是 4.0
最明显的问题是你使用了一个Function
你应该使用的地方,Sub
因为没有返回值。此外,您的参数是落后的。
以下内容应该适合您:
Me.Dispatcher.Invoke(Sub() Me.Label2.Content = "Scanning done.", DispatcherPriority.Background)
试试这个(.net 4.5,在 c# 中):
Application.Current.Dispatcher.InvokeAsync(() => Label2.Content = "Scanning done.");