基於介面和佇列的執行緒操作UI方式

2021-09-06 05:37:41 字數 1088 閱讀 8781

在實際開發應用中,非ui執行緒操作ui是普遍存在的,在.net下一般是通過control.invoke的方法來進行操作,但到處都是control.invoke**維護可是一件麻煩的事情。以下通過介面和佇列來規範非ui執行緒操ui的實現。

既然要規範處理那介面是個不錯的選擇,以下定義乙個簡單的執行介面

public inte***ce iinvokeitem

以下是擴充套件乙個簡單的操作類封裝

class controlinvoke: iinvokeitem

private control mcontrol;

private data mdata;

private actionmaction;

public void execute()

}

規則定好了,那接下來要做的事情就是寫乙個簡單的佇列處理。

public class dispatch

public void add(control control, data data, actionaction)

private queuemqueues = new queue();

public static dispatch instance

public void add(iinvokeitem item)

}public void execite()}}

}

乙個簡單的呼叫規則就完成,接下來就是如果在winform下面用了;首先可以在介面定義乙個timer,可以指定時間內執行dispatch的工作。

private void timer1_tick(object sender, eventargs e)

private void cmdtest_click(object sender, eventargs e)

private void ontest(object state)

);system.threading.thread.sleep(10);

}}

這樣乙個不使用control.invoke來實現非ui執行緒操作ui的方法就完成了.至於靈活性來說那就看你如何發揮iinvokeitem了:)

基於介面和佇列的執行緒操作UI方式

在實際開發應用中,非ui執行緒操作ui是普遍存在的,在.net下一般是通過control.invoke的方法來進行操作,但到處都是control.invoke 維護可是一件麻煩的事情。以下通過介面和佇列來規範非ui執行緒操ui的實現。既然要規範處理那介面是個不錯的選擇,以下定義乙個簡單的執行介面 p...

基於介面和佇列的執行緒操作UI方式

在實際開發應用中,非ui執行緒操作ui是普遍存在的,在.net下一般是通過control.invoke的方法來進行操作,但到處都是control.invoke 維護可是一件麻煩的事情。以下通過介面和佇列來規範非ui執行緒操ui的實現。既然要規範處理那介面是個不錯的選擇,以下定義乙個簡單的執行介面 p...

定時執行緒 Timer 操作UI介面

需求 先彈出dialog,然後,隔一定時間,修改dialog的msg.如果只是dismiss dialog 並不需要透過handle runonuithread 如果開啟新的定時執行緒,不起作用.android的執行緒通訊透過handle來處理,這裡也一樣 public static void sh...