[英]Any cycle, until another button is pressed C#
有沒有辦法做任何循環並中斷它,直到按下WinForms中的另一個按鈕?
do
{
//Action
} while ("Button Stop is pressed");
在不阻止gui的情況下執行此操作的最佳方法是利用線程,例如:
Thread t = new Thread (delegate() {
while(true) {
What you want to happen inside the loop in here;
Thread.Sleep(500); // this is useful for keeping the headroom of the CPU
}
});
以這種方式啟動線程:
t.Start();
當按下停止按鈕時,以這種方式中止線程:
t.Abort();
這使gui保持活力。
有兩種可能的情況:
1-您正在主線程中運行該循環,那么答案是否定的,如果您阻止主線程,則事件將不會觸發並且無法捕獲按鈕單擊。
2-您正在工作線程中運行該循環,在這種情況下,可以在設置為true的函數外部創建一個布爾值,在循環中檢查此布爾值,然后在按鈕的click事件中將其設置為false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.