我有一種情況,我希望同一個線程執行多個操作。 參考下面的代碼:在單線程對象上一個接一個地調用不同的操作
namespace ConsoleApplication1
{
public interface ISample
{
void show();
}
class A : ISample
{
public void show()
{
Console.WriteLine("Inside A");
}
}
class B : ISample
{
public void show()
{
Console.WriteLine("Inside B");
}
}
class Program
{
static void Main(string[] args)
{
ISample aObj = new A();
System.Threading.ThreadStart ts1 = new System.Threading.ThreadStart(aObj.show);
System.Threading.Thread t1 = new System.Threading.Thread(ts1);
t1.Start();
t1.Join();
aObj = new B();
t1.Start();
Console.ReadLine();
}
}
}
以上異常代碼的結果。我已經看到很多關於重新啓動線程的討論。在我的情況下,我想在同一個線程上一個接一個地執行多個操作。對於我來說,我正在尋找解決方案來在同一個線程上運行不同對象的不同方法。所有這些對象都是實現與上述代碼相同的接口的類。請建議我最好的方式來執行此操作。換句話說,如果一個方法完成,那麼同一個線程應該啓動另一個對象的方法。這可能嗎?
這個的唯一限制是你需要知道預先執行的方法(對於我來說,不清楚這是否是OP所要求的) –
這不起作用,因爲我不知道所有的方法我會有什麼調用可用的線程對象。爲每個節點可視化樹狀結構和線程。 –
@NutanJayavant,用另一個選項更新答案 - 使用Dispatcher類。 – alex