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.可以看出,這是子執行緒通知主線程,而主線程沒有直接通知子執行緒,那麼我們如何做到這一點?這樣有什麼好處?好處,很明...