2012-12-23 79 views
4

我想在一個按鈕點擊中組合2個不同的按鈕點擊事件。我在這兩個按鈕點擊事件中有兩個線程來更新winform中的文本框。當我試圖組合這兩個按鈕時,線程同步運行,但我需要在thread1完成後運行thread2。我怎樣才能做到這一點?我試過做thread1.start比thread2.start,但它不起作用,因爲所有的click事件都一次執行。有人幫我嗎?謝謝。在一個按鈕點擊完成後運行一個線程

回答

2

的.Net 4: 如果您使用的是.NET 4或更高版本,看看任務,特別是ContinueWith method。這是一個更加統一的方法,要好得多。

.Net 1-3.5: 如果您已經自己管理線程,可能最好的辦法是隻有一個線程。

new Thread(DoJob1And2).Start() 

凡方法被定義爲:

void DoJob1And2() 
{ 
    try 
    { 
     Job1(); 
    } 
    finally 
    { 
     Job2(); 
    } 
} 

void Job1() 
{ 
    // Do job 1 
} 

void Job2() 
{ 
    // Do job 2 
} 
+0

我想在一個函數寫但我最終沒有使用try,並且沒有使用新線程來校準DoJob1And2。有用。非常感謝你。 – snvngrc

3

你可以不喜歡它

new Thread(() => 
    { 
     Method1(); 
     Method2(); 
    }).Start(); 

或更好的使用TPL

Task.Factory.StartNew(() => Method1()) 
      .ContinueWith(t => Method2()); 
相關問題