簡體   English   中英

任何周期,直到按下另一個按鈕C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM