带参数的 Dispatcher.BeginInvoke 操作
在处理一些大小调整之前,我使用调度程序来更新我的用户界面。 问题是 BeginInvoke(DispatcherPriorty, new ACTION) 的部分是我陷入困境的地方。 我想用参数调用一个方法,但我不知道为什么。
这是我当前的调度程序:
void s_SizeChanged(object sender, SizeChangedEventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(test));
}
这是我正在调用的方法:
public void test()
{
foreach (Structures s in ((TreeView)this.cont.Children[0]).Items)
s.updateRelationLines(this.Data, this.cont.ColumnDefinitions[1]);
}
我只想替换 this.Data 和
this.cont.Columndefinitions[1]
以及参数。
I'm using a Dispatcher to update my UI before I handle some resiszing.
The Problem ist the part of BeginInvoke(DispatcherPriorty, new ACTION) is where I am stuck.
I want to call a method with Parameters and I don"t know why.
Thats my current Dispatcher:
void s_SizeChanged(object sender, SizeChangedEventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(test));
}
And this is my method i am calling:
public void test()
{
foreach (Structures s in ((TreeView)this.cont.Children[0]).Items)
s.updateRelationLines(this.Data, this.cont.ColumnDefinitions[1]);
}
I just want to replace this.Data
and this.cont.Columndefinitions[1]
with Parameters.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以为此使用 lambda 表达式:
这基本上会创建一个匿名方法
并通过调度程序调用该方法。一些编译器魔法可确保 param1 和 param2 可供此方法使用,即使它们仅位于
s_SizeChanged
方法的范围内。有关此内容的更多详细信息,请访问:You can use a lambda expression for this:
This basically creates an anonymous method
and invokes this method through the dispatcher. Some compiler magic ensures that param1 and param2 are available to this method, even if they are only in the scope of your
s_SizeChanged
method. More details on this can be found here:您应该能够执行以下操作:
使用如下回调:
You should be able to do:
With a callback like: