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