WPF中的TargetParameterCountException

时间:2011-04-20 21:49:09

标签: c# .net wpf

TargetParameterCountException:参数计数不匹配。

请问这里发生了什么?

方法完成后,抛出此错误。

我已经尝试了其他一些主题,但我的情况有所不同。

有任何线索吗?

我正在使用这个Dispatcher,因为我有一个交叉线程问题。

void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
    if (backgroundWorker.CancellationPending == true)
    {
        e.Cancel = true;
        return;
    }

    e.Result = ...;

    Dispatcher.BeginInvoke(DispatcherPriority.Normal,
        (RunWorkerCompletedEventHandler)delegate
        {
            image1.Source = (BitmapImage)e.Result;
        });
}

1 个答案:

答案 0 :(得分:1)

RunWorkerCompletedEventHandler委托需要您未提供(或使用)的参数,您可以将其更改为Action

Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
{
    image1.Source = (BitmapImage)e.Result;
});

如果你必须使用RunWorkerCompletedEventHandler(这是毫无意义的),你可以调用相应的BeginInvoke重载,并提供一个由两个对象组成的空数组,代表发送者和事件参数:

Application.Current.Dispatcher.BeginInvoke((RunWorkerCompletedEventHandler)delegate
{
    image1.Source = (BitmapImage)e.Result;
}, DispatcherPriority.Normal, new object[2]);