Csharp/C#教程:带参数的Dispatch.Invoke(new Action …)分享


带参数的Dispatch.Invoke(new Action …)

以前我有过

Dispatcher.Invoke(new Action(() => colorManager.Update())); 

从另一个线程更新显示到WPF。 由于设计,我不得不改变程序,我必须将ColorImageFrame参数传递给我的ColorStreamManager.Update()方法。

点击此链接后,我将调度程序修改为:

 Dispatcher.Invoke(new Action((p,v) => p.Update(v))); 

它编译得很好但根本不会运行。 VS2010说“参数计数不匹配”。 在我的ColorStreamManager.Update()方法中,我有RaisePropertyChanged(() => Bitmap) ;

有人可以指出我哪里出错了吗?

ColorStreamManager.Update()方法的签名如下:

  public void Update(ColorImageFrame frame); 

您不希望操作具有参数,因为Dispatcher不会知道要传递给方法的内容。 相反,你可以做的是关闭变量:

 ColorImageFrame someFrame = ...; Dispatcher.Invoke(new Action(() => colorManager.Update(someFrame))); 

如果使用Action委托调用Invoke ,则需要将两个Action参数传递给Invoke调用:

 ColorStreamManager colorManager = ... ColorImageFrame frame = ... Dispatcher.Invoke( new Action((p,v) => p.Update(v)), colorManager, frame); 

您在此处使用的Invoke重载是Dispatcher.Invoke(Delegate, Object[])

上述就是C#学习教程:带参数的Dispatch.Invoke(new Action …)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/992599.html

(0)
上一篇 2021年12月25日
下一篇 2021年12月25日

精彩推荐