1

在线程中我想更改标签的值

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

试过这段代码:

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

但它不会改变价值。

我究竟做错了什么?

@edit:我的目标框架是 4.0

4

2 回答 2

2

最明显的问题是你使用了一个Function你应该使用的地方,Sub因为没有返回值。此外,您的参数是落后的。

以下内容应该适合您:

Me.Dispatcher.Invoke(Sub() Me.Label2.Content = "Scanning done.", DispatcherPriority.Background)
于 2013-08-27T20:08:16.433 回答
1

试试这个(.net 4.5,在 c# 中):

Application.Current.Dispatcher.InvokeAsync(() => Label2.Content = "Scanning done.");
于 2013-08-27T20:55:51.420 回答