比如我做一個WPF程式,需要做三件事情:
A:與其他設備的通訊,周期5s,每5s收發一次資料。
B:資料處理,周期1min,每分鐘處理一次更新一下資料寫入資料庫。
C:其他事務,例如互動性的,要隨時回應,需要連續運行。
那我如何實作兩個不同周期的定時性任務,同時還要保證連續運行的任務能及時處理?
我以前做嵌入式,在嵌入式實時作業系統Vxworks或Linux RT里就每個任務建一個Task,分配好優先級。
每個Task里就是一個死回圈,然后用TaskDelay設定回圈時間就可以。
但是看了C#之后感覺有點迷惑,有異步編程,有并行,有多執行緒,也有任務,但是不知道具體怎么去實作。
求指點
uj5u.com熱心網友回復:
和你的嵌入式代碼一樣原理, 嵌入式建一個Task, 就等于C#里面建立一個執行緒, 每條執行緒都是獨立互相不影響的. 去看看多執行緒的教程, thread 在C#里面是執行緒, task 是執行緒池uj5u.com熱心網友回復:
都不挨著,所以我們也不知道你困惑在哪里?這邊是一樣的做法。
Task 設備通訊= Task.run(()=>{
你說的回圈
},longtime調度)
Task 處理資料= Task.run(()=>{
還是你說的回圈
},longtime調度)
至于互動?你書上告訴你點啥,觸發啥,怎么互動就怎么互動。
別的我也不多說了,你這情況俺們說的越多你估計越糊涂,你就先按上面的做(上面我寫的是偽代碼,自己先弄明白Task怎么使用了,自己實作)
uj5u.com熱心網友回復:
定時器來執行即可uj5u.com熱心網友回復:
quartz.net 創建執行計劃轉載請註明出處,本文鏈接:https://www.uj5u.com/net/252876.html
標籤:C#
