Метод не является делегатом - делегат - это отдельный тип, который ссылается на метод - на самом деле в делегате больше информации, чем просто метод.
Технически, для компилятора может быть возможно подключить это для вас и сократить ввод текста, но я на самом деле несколько благодарен, что это не было сделано. Вынуждая вас назначить делегата для ссылки на метод объекта, а затем вызывать его с помощью BeginInvoke, компилятор заставляет вас быть более явным по вашему желанию.
Вызов делегата через BeginInvoke потенциально может иметь некоторые серьезные побочные эффекты - это должно быть явное, целенаправленное действие. Многие методы не будут работать должным образом, если они будут вызываться в отдельных потоках, и, по крайней мере, таким образом, вам нужно знать, что вы делаете, чтобы работать таким образом.
Как говорится, в .NET 4 я бы порекомендовал изменить способ «запуска методов» в «фоновых потоках». Вместо использования Delegate.BeginInvoke я бы рекомендовал рассмотреть возможность перехода на использование нового класса Task:
Task.Factory.StartNew( () => FireMessages(1) );
У новой библиотеки задач есть много преимуществ, особенно когда речь идет об обработке ошибок, отмене, предотвращении переподписки в пуле потоков и т. Д.