WPF 多執行緒 子執行緒操作介面主線程的元素

2021-07-04 19:58:38 字數 1145 閱讀 9143

1 在**中開啟乙個子執行緒 

thread cabservice = new thread(new threadstart(datareceiver));

cabservice.start();

每隔2s ,產生乙個資料

public void datareceiver()

thread.sleep(2000);

}}

2 定義**和事件 

public delegate voiddatamonitor(int data);
public eventdatamonitormonitor ;

每次是產生資料,就會觸發事件鏈條 ,去執行monitor(x) 

3 在monitor  上面新增處理

monitor += new datamonitor(cab.updatechart);

cab.updatechart 就是需要更新介面圖示資料的**

4 在cab類當中頂乙個這樣乙個函式,實現介面更新 

public void updatechart(int x)

public voidupdateserial()

datapoint datapoint = new datapoint();

datapoint.axisxlabel = (_pointcount - 1) + "";

datapoint.yvalue = data;

dataseries.datapoints.add(datapoint);

cab_chart.series.clear();

cab_chart.series.add(dataseries);

}

5 這和android的執行緒模型極為相似,子執行緒的資料都需要乙個handler 來執行介面更新 ,ok!

多執行緒經典問題1 主線程子執行緒交替問題

提出問題 子執行緒迴圈 10 次,接著主線程迴圈 100 次,接著又回到子執行緒迴圈 10 次,接著再回到主線程又迴圈 100 次。如此迴圈50次。分析 這個實際上是非常easy的問題。即子執行緒run,主線程堵塞 子執行緒堵塞,主線程run 可以使執行緒堵塞的方法有非常多,最常見的是sleep與w...

主線程 子執行緒死掉 主線程可以在子執行緒之前死掉

我相信主線程不能在子執行緒之前死亡。但是有什麼方法可以檢查嗎?我在下面寫了乙個簡單的程式。任何人都可以證明它實際上離開理論嗎?class childre extends thread public void run for int i 0 i 10 i system.out.println chil...

android 實現主線程 子執行緒雙向通訊

在 android 中,不可以在子執行緒中更新 ui 的操作,否則會報錯或者異常資訊。在這種情況下,我們會使用 handler 在 ui 執行緒建立該物件 接收子執行緒的訊息更新 ui.可以看出,這是子執行緒通知主線程,而主線程沒有直接通知子執行緒,那麼我們如何做到這一點?這樣有什麼好處?好處,很明...