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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將屬性設(shè)置為 true 時 C# 軟件凍結(jié)

將屬性設(shè)置為 true 時 C# 軟件凍結(jié)

C#
蕪湖不蕪 2021-08-22 14:48:35
我有以下代碼:public partial class Form1 : Form{    // our config    public bool runBot, afkModeToggle, shutdownPcToggle = false;    public int roundsToPlay, minsToPlay, waitInLobbyFor, waitInDeathScreenFor;    public void addToLogs(string logmsg)    {        richTextBox1.AppendText("\r\n" + logmsg);        richTextBox1.ScrollToCaret();    }    public void startsoftware()    {        runBot = true;        addToLogs("[" + DateTime.Now + "] Bot has started");        label22.Text = " RUNNING" + runBot;        label22.ForeColor = System.Drawing.Color.DarkGreen;    }    public void pausesoftware()    {        runBot = false;        addToLogs("[" + DateTime.Now + "] Bot has been paused");        label22.Text = " PAUSED" + runBot;        label22.ForeColor = System.Drawing.Color.Crimson;        if (checkBox3.Checked)         {             Process.Start("shutdown", "/s /t 0");        }    }    public bool processrunning()    {        Process[] pname = Process.GetProcessesByName("notepad");        if (pname.Length == 0)        {            label23.Text = "process Not Found";            label23.ForeColor = System.Drawing.Color.Crimson;            return false;        }        else        {            label23.Text = "process Found";            label23.ForeColor = System.Drawing.Color.DarkGreen;            return true;        }    }    //    // form follows    //    public Form1()    {        InitializeComponent();    }    private void timer1_Tick(object sender, EventArgs e)    {        while(runBot == true)        {            if(processrunning() == true)            {            }        }    }    private void button1_Click(object sender, EventArgs e)    {        startsoftware();    }    private void button2_Click(object sender, EventArgs e)    {        pausesoftware();    }}它是通過 Visual Studio 構(gòu)建的基本形式。當(dāng)我單擊按鈕 1 時,它只會凍結(jié)軟件,而您無法單擊其他任何內(nèi)容。我已經(jīng)將其追溯到這一點 - 如果我注釋掉函數(shù)runBot = true內(nèi)部startsoftware,它將起作用,但是該行會導(dǎo)致凍結(jié)。我在這里遺漏了什么?
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻1871條經(jīng)驗 獲得超13個贊

Windows 窗體有一個 UI 線程。該線程負責(zé)更新 UI,并處理 UI 相關(guān)事件。如果此線程被阻塞,那么您的 UI 將變得無響應(yīng)。

計時器滴答事件由此 UI 線程處理,因此當(dāng)您在此事件處理程序中啟動一個長循環(huán)時,UI 線程無法處理 UI 的其余部分,并且您的程序似乎凍結(jié)了。

有幾種方法可以在您的代碼中解決此問題。您可能會刪除

while(runBot == true)

從您的計時器滴答事件中,讓計時器定期滴答。當(dāng)您不想processrunning運行檢查時,您可以禁用計時器。如果您不希望用戶在此期間單擊某些內(nèi)容,您可以禁用按鈕。

另一種選擇是有一個后臺線程來相應(yīng)地調(diào)用processrunning和設(shè)置一個標(biāo)志。


查看完整回答
反對 回復(fù) 2021-08-22
?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

這部分代碼需要更改,否則您將永遠循環(huán):


while(runBot == true)

{

    if(processrunning() == true)

    {

    }

}

也許在處理中將 runbot 設(shè)置為 false?


查看完整回答
反對 回復(fù) 2021-08-22
  • 2 回答
  • 0 關(guān)注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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