Вы должны иметь возможность использовать:
form.BeginInvoke((Action<int>)DoWork, param);
В качестве дополнительного примечания, MethodInvoker
обладает преимуществом специальной обработки - он может вызывать это с помощью typed-invoke, а не отражением-invoke -и, возможно, что более важно, предлагает проверку аргументов заранее; лично Я бы просто использовал:
form.BeginInvoke((MethodInvoker)delegate {DoWork(param);});