![]() |
1
25
更新
如果您使用的是C 5和.NET 4.5或更高版本,则首先可以避免使用
容易的:
如果你在代码后面。否则,您可以访问调度器(位于
好吧,这是一行很多,让我来看看:
当您想要更新一个UI控件时,正如消息所说,您必须从UI线程进行更新。有一种内置的方法可以将委托(方法)传递给UI线程:
我在上面传递了一位匿名代表:
之间的位是方法块。之所以称为匿名,是因为只创建了一个名称,而它没有名称(通常可以使用lambda表达式执行此操作,但在这种情况下,C无法解析要调用的BeginInvoke()方法)。或者我可以实例化一个委托:
然后通过了:
我还使用了一个内置委托的action类,但您可以创建自己的-您可以在msdn上阅读更多关于委托的内容,因为这有点偏离主题。 |
![]() |
2
5
还可以使用带有匿名方法的操作委托从工作线程更新主线程。有关操作类的更多信息,请查看以下内容: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx 如果您想从多个点更新列表框,我建议明确设置委托,但是如果您只想用一个调用在方法的一个点上更新线程,可以按如下方式进行:
注意,我使用action类是因为它封装了一个具有单个参数的方法(在本例中是一个listem)。 |
![]() |
3
2
你会想用的
Dispatcher.BeginInvoke
. 例如,如果列表框的名称为
这将使要在UI线程上执行的委托排队
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |