This one took me a while to figure out: if you want a delegate that returns void and accepts no argument, just use System.Action (first available in .NET 3.5). Not Action<T>: the one that takes no arguments is not a generic. Which makes sense, but still threw me for a bit.