直接调用lambda表达式? (例如 Action.Invoke(()=>{})

Calling lambda expression directly? (Ex. Action.Invoke(()=>{})

抱歉标题不好。我想在 .NET 3.5 中执行以下操作:

void Invoke(Action callback)
{
   callback();
}

但我想知道是否已经有一些 built-in class 具有此功能。例如,如果我能做到以下几点我会很高兴(但我知道我做不到):

Action.Run(()=>{}}

我知道这个问题有很多解决方案,比如编写我自己的助手 class 或扩展。但正如我所说,我想知道如果没有这些是否可行。

澄清:

我想要这个解决方案,因为我有一个这样的方法定义:

private void HelloWorld(Action callback)
{
#if DOTNET4.0+ //This code won't be compiled for DOTNET3.5
   Action.Run(async ()=>{
      await someTask;
      callback();
   });
#else //This code will be
   callback();
#endif
}

我不想使用 Task.Run(...) 的原因是因为我想尽量减少依赖 .NET4.0+ 的代码量。如果除了Task.Run(...)别无选择,那我就去吧。

好吧,一个没有参数的 void lambda 可以这样调用:

((Action)(()=>{}))()

((Action)(()=>{})).Invoke()

在允许使用它之前,您始终必须为 lambda 分配一个类型(甚至是隐式的)。