在线程中运行参数化方法
我目前正在开发 ac# 项目,我需要一个有 1 个参数的方法作为线程运行。
例如,
public void myMethod(string path)
{
int i = 0;
while (i != 0)
{
Console.WriteLine("Number: " + i);
i++;
}
}
如何从另一个方法调用上述方法,但在线程内运行。
感谢您提供的任何帮助。
I am currently working on a c# project and I need to have a method which has 1 paramater to run as a thread.
E.g.
public void myMethod(string path)
{
int i = 0;
while (i != 0)
{
Console.WriteLine("Number: " + i);
i++;
}
}
How can I call the above method from another method, but running inside a thread.
Thanks for any help you can provide.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最简单的方法通常是使用匿名方法或 lambda 表达式:
您可以使用
ParameterizedThreadStart
,但我通常不会。请注意,如果您在循环中执行此操作,则需要注意正常的-loop-variable-considered-harmful.aspx" rel="nofollow">"关闭循环变量" 危险:
The simplest way is generally to use an anonymous method or lambda expression:
You can use a
ParameterizedThreadStart
, but I generally wouldn't.Note that if you do it in a loop, you need to be aware of the normal "closing over the loop variable" hazard:
只需将该方法调用包装在一个不带参数的方法中,但该方法使用正确的参数调用您的方法。
或者,如果您有可用的 lambda,只需使用其中之一(根据 Jon Skeet 的回答)。
Simply wrap that method call in a method that takes no parameters, but which calls your method with the right parameter.
Or if you have lambdas available, simply use one of those (per Jon Skeet's answer).