[WPF] Error : Parameter count mismatch (使用Dispatcher请注意
摘要:[C#] Parameter count mismatch (dispatcher) 那天在使用dispatcher.BeginInvoke时 产生一个 Error :?Parameter count mismatch code大概如下就会出现此错误 public void FunA() { int[] Array = new int[3] { 0,1,2 }; Dispatcher.BeginInvoke(new FuncDelegate(Function),Array); } private delegate void FuncDelegate(int[] Array); private void Function(int[] Array) { //something... } 查了MSDN public DispatcherOperation BeginInvoke( Delegate method,params Object[] args ) 或许你就会有头绪,主要为args这个参数... 用法并非如此使用 params?关键字可使您指定可以接受参数的方法参数,其中参数数目是可变的。 ?(sample code可以查一下MSDN好朋友XD)
很明显...解法或许就是把arrary 拆开,一个一个放进去... int[] Array = new int[3] { 0,2 }; Dispatcher.BeginInvoke(new FuncDelegate(Function),Array[0],Array[1],Array[2]);
但聪明点,就用一个object变量包装整个array啰 (记得Function内的实践,需将obj再转回 int[]) int[] Array = new int[3] { 0,2 }; object obj = Array; Dispatcher.BeginInvoke(new FuncDelegate(Function),obj);
================另外补充================= 以往C++是透过 postMessage/sendMessage去让UI进行更新 但C#中 您可采用 Dispatcher去实现 ?(要在C#采用postMessage也是可以,就引入user32.dll) 而Dispatcher.Invoke相当于sendMessage,?Dispatcher.BeginInvoke则相当于postMessage
任何问题或建议,欢迎一起讨论:) 原文:大专栏 ?[WPF] Error : Parameter count mismatch (使用Dispatcher请注意) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |