[WPF]エラー:パラメータカウント不一致(Dispatcherは注意してください使用)

要約:[C#]パラメータ数のミスマッチ(ディスパッチャー)


dispatcher.BeginInvokeを使用した場合にはエラーを生成します。パラメータの数の不一致

このエラーのようなコードの何かが起こります


 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をチェック

公共DispatcherOperation BeginInvokeを(
	委任方法、
	[]引数オブジェクトparamsの

たぶん、あなたは、手掛かりを持っています主に使用するため... argsが、これはケースの使用ではないパラメータ

paramsキーワードを使用すると、パラメータの数が可変である場合には、パラメータを受け入れることができ、メソッドのパラメータを指定することができます。(サンプルコードは、MSDNの良い友人XDを確認することができます)

おそらく、溶液が透明に...離れてarraryすることで、一つ一つが入ります...


int[] Array = new int[3] { 0, 1, 2 };
Dispatcher.BeginInvoke(new FuncDelegate(Function), Array[0], Array[1], Array[2]);

しかし、スマートに、全体アレイパッケージのオブジェクト変数のHelloを使う(objに必要と、関数で練習することを忘れない当時のint [])


int[] Array = new int[3] { 0, 1, 2 };
object obj = Array;
Dispatcher.BeginInvoke(new FuncDelegate(Function), obj);

また================ ================追加

C ++は、UIの更新を許可するのpostMessage /のsendMessageを通じて過去です

しかし、あなたのC#でディスパッチャを達成するために使用することができます(user32.dllのの導入にも可能C#のpostMessageで使用されます)

Dispatcher.Invoke同等のsendMessage、Dispatcher.BeginInvokeは同等のpostMessageです

ご質問やご提案、ご相談ください:)

オリジナル:大列  [WPF]エラー:パラメータカウント不一致 ( Dispatcherは注意してください使用)


おすすめ

転載: www.cnblogs.com/petewell/p/11518155.html