我有一個問題。如果我有一個方法爲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