第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何修復(fù)while循環(huán)崩潰程序

如何修復(fù)while循環(huán)崩潰程序

C#
函數(shù)式編程 2022-01-09 15:17:37
我試圖在 Visual Studio 中按下檢查按鈕時(shí)連續(xù)發(fā)送串行數(shù)據(jù)。到目前為止,這就是我想出的:private void checkBox1_CheckedChanged_1(object sender, EventArgs e)    {        while (checkBox1.Checked)        {            serialPort1.Write("D");            Task.Delay(100);            if (checkBox1.Checked != true)            {                break;            }        }                                            `    出于某種原因,每當(dāng)我啟動(dòng)程序并選中該框時(shí),程序就會(huì)凍結(jié)。我無法退出程序或最小化它或任何東西。它只是停在它的軌道上。
查看完整描述

2 回答

?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

Windows 中的用戶界面基于消息。您的 while 循環(huán)在處理這些消息的線程中運(yùn)行。當(dāng)您的代碼運(yùn)行時(shí),不會(huì)處理任何消息。用戶界面無法重繪,也無法對(duì)用戶輸入做出反應(yīng)。

更好的方法:使用Timer組件。TickTimer的事件將根據(jù) 的Interval屬性每 n 毫秒執(zhí)行一次Timer。在這種情況Tick下,您可以檢查 Checkbox 的狀態(tài),然后根據(jù)是否選中復(fù)選框來執(zhí)行某些操作。

如果“做某事”是一項(xiàng)非常短暫的活動(dòng),這是一個(gè)很好的方法。對(duì)于更長的活動(dòng),您需要更復(fù)雜的設(shè)置,這超出了 SO 問題的范圍,除非您提供更多詳細(xì)信息。


查看完整回答
反對(duì) 回復(fù) 2022-01-09
?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

您正在阻塞 UI 線程,因?yàn)槟氖录谕教幚?。有關(guān)異步/等待編程的一些提示,請(qǐng)參閱此答案:如何從另一個(gè)線程更新 GUI?


查看完整回答
反對(duì) 回復(fù) 2022-01-09
  • 2 回答
  • 0 關(guān)注
  • 204 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)