要約:[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は注意してください使用)