Dispatcher.Invoke不会更改Label的值

时间:2013-08-27 19:59:01

标签: wpf vb.net dispatcher

在线程中我想更改Label的值

我发现我必须使用Dispatcher.Invoke。

试过这段代码:

Me.Dispatcher.Invoke(DispatcherPriority.Background, (Function() Me.Label2.Content = "Scanning done."))

但它不会改变价值。

我做错了什么?

@edit:我的目标框架是4.0

2 个答案:

答案 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.");