在线程中我想改变标签的值Dispatcher.Invoke不改变标签的值
我发现我必须使用Dispatcher.Invoke。
尝试这种代码:
Me.Dispatcher.Invoke(DispatcherPriority.Background, (Function() Me.Label2.Content = "Scanning done."))
,但它不会改变的价值。
我在做什么错?
@edit:我的目标框架是4.0
在线程中我想改变标签的值Dispatcher.Invoke不改变标签的值
我发现我必须使用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.");
他们要求在VB.NET中的语法。我相应地更新了问题中的标签。 – Khan
多久你久等了。 BackgroundPriority不会立即改变... –
我等了大约10秒,但我试图改变背景其他优先事项。仍然没有改变。 – Disa