5

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

void Method1(string param)
{
    // Some Code
}

void Method2(string param)
{
    // Some Code
}

void RunInThread(AMethod m)
{
   //Run the method in a background thread
}
4

2 回答 2

8

如果您的方法有返回值,请使用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);
于 2013-04-01T17:24:19.033 回答
2

我喜欢Task.Run当我只想在后台线程中运行一点代码时。它甚至看起来与您要定义的签名几乎相同。还有很多其他的重载。

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

MSDN 文档

于 2013-04-01T17:26:34.773 回答