You have a parameter which is
string[]
An array of strings.
You are passing a string.
These are different types.
You should pass an array of string, even if it's only one string and the array is length of 1.
Looks like you have an explicit delegate you're using there.
I don't know exactly what you're doing but I usually find capturing variables in a closure is a convenient way to work for this sort of thing.
I also recommend invokeasync over begininvoke.
Dispatcher.InvokeAsync((Action)(() =>
{
// Your code to do things on the ui thread goes here.
}));
You can pass in a parameter to that anonymous action
Dispatcher.InvokeAsync((Action)((param) =>
{
something = param;
}));
And or capture variables. So long as these are thread safe such as freezables.
foo = whatever;
Dispatcher.InvokeAsync((Action)(() =>
{
something = foo;
}));