我有一个问题。如果我有一个方法为DoSomething()的对象,如果为此方法创建多个线程,它是否可以工作,并且它将作为它自己的单独线程运行,是否可能并且有效?在对象的实例上为同一方法创建多个线程
E.g.
public class SomeClass
{
public void DoSomething()
{
//somethings done here
}
}
public class MainProgram
{
public MainProgram()
{
InitializeComponents();
}
protected override OnStart(string[] args)
{
SomeClass sc = new SomeClass();
Thread workerOne = new Thread(() => sc.DoSomething());
workerOne.Start();
Thread workerTwo = new Thread(() => sc.DoSomething());
workerTwo.Start(); //start a new thread calling same method
}
}
我希望那种解释我的意思。这会工作或导致任何问题?
我正在写一个程序,需要几乎是实时软件,我目前正在决定初始化SomeClass的新实例是否更好?
希望有人能回答。如果我的问题没有意义,请评论,我会进一步解释!
感谢,
Base33
PS的代码专门针对
你在什么版本的C#/ .NET? – RobertMS
必须链接:[Joe Albahari的免费电子书](http://www.albahari.com/threading/) –
我是一名Java程序员。但仔细看看代码后,似乎可以重用SomeClass的同一个实例。尽管只有一个线程能够运行该方法,而另一个线程则等待轮到它。至少这是Java中发生的事情。 – CKing