c# - 以相同的方法在新线程中启动

标签 c# multithreading

我是线程使用的初学者,在我看到的示例(如 herehere )中,必须将新线程分配给方法。但是,有没有办法在方法中做到这一点?我正在寻找这样的东西:

public void MyMethod()
{
//Start new thread that affects only this method

//Do stuff
//More stuff

}

谢谢。

最佳答案

如果您不想创建单独的方法,您可以启动匿名方法或 lambda。

最简单的方法:

Task.Run(()=>{
  // Your new thread code
});

请注意,这会创建您在线程中使用的闭包和父方法变量,直到您的线程完成后才会被释放。像这样启动一个长时间运行的线程也不是一个好习惯,因为它使用了线程池。

因此在这种情况下,您可以执行类似下面代码的操作,或者使用更详细的语法来创建任务并指定 TaskCreationOptions.LongRunning 参数。

new Thread((ThreadStart)delegate() {
 // Your new thread code
}).Start();

您可以将新的Thread 对象放入变量中以便稍后对其进行控制。

关于c# - 以相同的方法在新线程中启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21967278/

相关文章:

C# 使用 VTK 旋转 3D 对象

c# - HttpWebRequest 在另一个线程中返回请求的结果 (Monotouch)

c# - 用于处理字节的无编码字符串类? (或替代方法)

c# - 结果集存储在模型上 - C# .NET 2.0

c# - asp.net mvc 管道中替换文本的最佳位置

java - 每秒检查一次时间

.net - 最适合多线程请求的集合?

multithreading - 何时选择多线程或多处理?

java - volatile 是否会阻塞或涉及上下文切换?

c# - 取出除最后一个满足条件的所有项目?