當(dāng)WPF應(yīng)用程序運(yùn)行時(shí),默認(rèn)會(huì)創(chuàng)建一個(gè)UI主線程(因?yàn)橹辽傩枰粋€(gè)),并在該UI線程上啟動(dòng)消息循環(huán)。直到消息循環(huán)結(jié)束,應(yīng)用程序就隨即退出。那么,問(wèn)題就來(lái)了,能不能創(chuàng)建新線程,然后在新線程上打開(kāi)一個(gè)新窗口實(shí)例?這樣可以讓不同窗口運(yùn)行在不同的線程上,一定程度上可以相互“獨(dú)立”。

其實(shí)呢,完全的獨(dú)立運(yùn)轉(zhuǎn)似乎不太可能,畢竟嘛,線程是搶占 CPU 時(shí)間片的,即各個(gè)線程間是交替運(yùn)行的,現(xiàn)在處理器基本是N核的,可以結(jié)合并發(fā)一起用(在.net 中,使用 Task 可以自動(dòng)并發(fā))。不管怎么說(shuō)吧,對(duì)UI的響應(yīng)能力應(yīng)該能有所改善的。

 

有大伙伴一定會(huì)說(shuō),這TMD Easy了,來(lái)直接上一段 Code。

            Task theTask = new Task(() =>
              {
                  SecondWindow wind = new SecondWindow();
                  wind.Show();
              });
            theTask.Start();

 

然后你滿(mǎn)懷信心,春光滿(mǎn)面地按下了【F5】鍵,結(jié)果……

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

網(wǎng)友評(píng)論