C# 在线程中运行参数化方法
我目前正在从事一个c#项目,我需要一个方法,该方法有1个参数作为线程运行 例如 如何从另一个方法调用上面的方法,但在线程中运行C# 在线程中运行参数化方法,c#,multithreading,parameters,C#,Multithreading,Parameters,我目前正在从事一个c#项目,我需要一个方法,该方法有1个参数作为线程运行 例如 如何从另一个方法调用上面的方法,但在线程中运行 谢谢你能提供的帮助 最简单的方法通常是使用匿名方法或lambda表达式: new Thread(o => myMethod((string)o)).Start(param); string path = ...; Thread thread = new Thread(() => MyMethod(path)); thread.Start(); 您可以使
谢谢你能提供的帮助 最简单的方法通常是使用匿名方法或lambda表达式:
new Thread(o => myMethod((string)o)).Start(param);
string path = ...;
Thread thread = new Thread(() => MyMethod(path));
thread.Start();
您可以使用参数化线程启动
,但我通常不会
请注意,如果在循环中进行,则需要注意正常危险:
最简单的方法通常是使用匿名方法或lambda表达式:
string path = ...;
Thread thread = new Thread(() => MyMethod(path));
thread.Start();
您可以使用参数化线程启动
,但我通常不会
请注意,如果在循环中进行,则需要注意正常危险:
只需将该方法调用封装在一个不带参数的方法中,但该方法使用正确的参数调用您的方法
public void myWrappingMethod()
{
myMethod(this.Path);
}
public void myMethod(string path)
{
// ...
}
或者,如果您有可用的lambda,只需使用其中一个(根据Jon Skeet的回答)。只需将该方法调用封装在一个不带参数的方法中,但该方法使用正确的参数调用您的方法
public void myWrappingMethod()
{
myMethod(this.Path);
}
public void myMethod(string path)
{
// ...
}
或者,如果您有lambda,只需使用其中一个(根据Jon Skeet的回答)。谢谢,效果很好。使用谷歌很难找到这个问题的答案,这比我在谷歌上找到的似乎不太好的答案要简单得多,感谢阿加因汉克斯的工作非常出色。使用谷歌很难找到这个问题的答案,这比我在谷歌上找到的似乎不太好的答案要简单得多,再次感谢