在實際開發應用中,非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乙個簡單的呼叫規則就完成,接下來就是如果在winform下面用了;首先可以在介面定義乙個timer,可以指定時間內執行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()}}
}
private void timer1_tick(object sender, eventargs e)
private void cmdtest_click(object sender, eventargs e)這樣乙個不使用control.invoke來實現非ui執行緒操作ui的方法就完成了.至於靈活性來說那就看你如何發揮iinvokeitem了:)private void ontest(object state)
);system.threading.thread.sleep(10);
}}
基於介面和佇列的執行緒操作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...