2013-04-12 154 views
0

我的程序通過串行連接運行測試。點擊RUN TEST按鈕後,一切都很好。 RUN TEST按鈕消失,STOP按鈕彈出。數據收集按預期運行。我的問題是,停止按鈕不響應。我所有的測試代碼都在RUN TEST按鈕單擊事件下運行。這是不是我的第二個按鈕不可中斷?按鈕不啓用/禁用

注意:我使用whateverButton.enable和whateverButton.visible屬性。是否有另一個我需要設置得到這個工作?

runButton.Enabled = false; 
runButton.Visible = false; 
STOPbutton.Enabled = true; 
STOPbutton.Visible = true; 

該程序的其餘部分是大到完全包括。

任何幫助,這將不勝感激。

+3

你如何處理正在運行的線程中的Stop動作?你在檢查停止嗎? –

+0

您是否想在這個長時間運行的過程中使'STOPbutton'可見? –

+1

您需要在新線程上運行您的代碼。從點擊處理程序運行阻止UI的其餘部分 – grantnz

回答

1

讓我猜 - 您禁用「運行」,啓用「停止」,執行您的任務,顛倒「運行」和「停止」的啓用/禁用?

您的問題是UI未更新,因爲UI線程忙於運行您的任務。

使用BackgroundWorkerTask.Run爲該任務產生一個新的線程,可能需要發生一些重要的重構,以便將UI交互從後臺線程中取出並支持取消。