This version works regardless of parameters:
public void AnyMethod(int parameter)
{
MethodInvoker wrapper = new MethodInvoker(delegate()
{
});
if (this.InvokeRequired)
this.Invoke(wrapper);
else
wrapper();
}
Note also that it does not need to be wrapped in a method to work. You can just place it inline. Any required variables will be captured by the delegate.
int parameter = 5;
MethodInvoker wrapper = new MethodInvoker(delegate()
{
lblCount.Text = parameter.ToString();
});
if (this.InvokeRequired)
this.Invoke(wrapper);
else
wrapper();