如何使用linq表达式将一个方法作为另一个方法的参数传递

本文关键字:方法 一个 另一个 参数传递 linq 何使用 表达式 | 更新日期: 2023-09-27 18:07:07

我想创建一个在后台线程中运行另一个方法的方法。像这样:

void Method1(string param)
{
    // Some Code
}
void Method2(string param)
{
    // Some Code
}
void RunInThread(AMethod m)
{
   //Run the method in a background thread
}

如何使用linq表达式将一个方法作为另一个方法的参数传递

如果你的方法有返回值,使用Func委托,否则你可以使用Action委托。例句:

void Method1(string param)
{
    // Some Code
}
void Method2(string param)
{
   // Some Code
}
void RunInThread(Action<string> m)
{
   //Run the method in a background thread
}

那么你可以这样调用RunInThread:

RunInThread(Method1);
RunInThread(Method2);

我喜欢Task.Run,当我只是想在后台线程中运行一点代码。它甚至看起来和你想要定义的东西有几乎相同的特征。还有很多其他的重载。

Task.Run(()=>{ 
      //background method code 
   }, TResult);

MSDN文档