标题几乎说明了一切。我有一些方法需要在新线程上运行,并且由于创建线程之前的所有代码都几乎相同,所以我想我会创建一个函数,它可以将我需要调用的 Action 作为参数。
问题是,我还没有找到如何告诉线程它需要执行 Action。这可能吗?这是我正在尝试做的一些示例代码。
private void ExecuteInBiggerStackThread(Action<Helper> action, Parameters parms)
{
ParameterizedThreadStart operation = new ParameterizedThreadStart(action);// here's the mess
Thread bigStackThread = new Thread(operation, 1024 * 1024);
bigStackThread.Start(parms);
bigStackThread.Join();
}
问候,
塞巴
最佳答案
我什至不会为 ParameterizedThreadStart
而烦恼。让编译器做肮脏的工作:
private void ExecuteInBiggerStackThread(Action<Helper> action, Helper h)
{
Thread bigStackThread = new Thread(() => action(h), 1024 * 1024);
bigStackThread.Start();
bigStackThread.Join();
}
当然,您可以更进一步,将签名更改为:
private void ExecuteInBiggerStackThread(Action action) { ... }
关于c# - 如何创建一个新线程来执行 Action<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3290859/