C winform窗體假死

2022-02-09 13:51:55 字數 918 閱讀 5773

c#  winform窗體假死

我們經常會遇到當執行乙個比較大的函式時,窗體會出現假死的現象,給使用者的體驗不是很好,於是我們遇到了問題,那麼就必須解決,我們該如何解決呢,首先在自己的腦裡畫個問號,接下來我們就一起研究吧!

先分析,這個問題是如何出現的呢!為什麼會出現,如何避免出現,避免不了的,如何解決等,下面我們就去解決問題吧,遇到問題不要怕,解決問題是我們成長最快的時候,曾經別人告訴我,不怕不會做,就怕想不到。那我們就進入正題吧!

窗體假死是如何出現的呢?

在呼叫    testc();函式時,阻塞了ui執行緒,所以會出現窗體假死現象。(你在吃飯就不能去買東西。) 

問題找到了,接下來我們就要想如何解決呢!

思路:2.我可以找個人去幫我買東西。這就是委託,委託乙個人去幫你買東西。(新開乙個執行緒)

切記:沒有必要的時候,請盡可能的少用執行緒。執行緒不易控制。

方案一:呼叫方法:doevents

public

partial

class

form1 : form

private

void button1_click(object

sender, eventargs e)

private

void

testc()}}

view code

方案二:新開乙個執行緒;

public

partial

class

form1 : form

private

void button1_click(object

sender, eventargs e)

private

void

testc()}}

view code

wince窗體假死

先在這裡記錄下,這個窗體假死的事情。場景是這樣的,c winform或者wince裝置在頁面跳轉之後,會載入乙個數量非常大的list資料到datatable中,在跳轉過程中,ui窗體在渲染的過程中,載入大量的資料就會造成窗體假死的現象。解決的大體思路 建立兩個執行緒,乙個執行緒用來作為ui執行緒渲染...

c Winform 載入窗體

先來乙個載入窗體 1 public partial class frmloading form210 11public keyvaluepaircurrentmsg 1217 18 19public frmloading 2029 3031 public void showlog string st...

C winform ,主窗體呼叫子窗體

問題1,第二次呼叫子窗體時存在出現無法訪問已釋放物件的異常,原因,子窗體並沒有關閉,而是隱藏掛起了,在窗體closing事件 不是closed 中新增 private void registry formclosing object sender,formclosingeventargs e 問題2...