ps:這個帖子已經發過一次,但是可能帖子太長跑到第二頁,擔心大佬(wanghui0380)看不到,所以重新發一次;感謝

業務流程A:這個流程時間特別長,且同時或者有可能中途新開始一個流程A
硬體設備只有一個:且硬體的各個部分是各個不同廠家的,只有最基礎功能,不能處理業務,所有的業務都交由上位機來控制N個硬體
隨著這個流程A開始(一個或多個且中途可能加入某個流程A,或者中途停止某個流程A),
流程A內由多個子業務,隨著多個子業務的執行,硬體環境會發生變化(溫度/壓力/化學的變化等),使得后加入的流程不能直接執行,要把環境變為合適的環境才能繼續處理(如果是同一個子業務,環境是一致的),
同時硬體資源在同一時間只能由一個子業務在用,
但為了時間性能和其他原因(比如有些條件,是不可逆的,或者壓力太大會爆掉,不能直接跳到其他業務),可以讓“這N個流程A的相同的子業務一同執行”;所以需要等待其他業務執行到相同的位置,來進行統一處理;
暫停和重做提示--這些要人工回應的操作,不能對硬體資源進行占有,要讓其他流程A來使用
情況基本就是這樣,不知大佬們對這種情況如何來處理,
上次大佬(wanghui0380)所說的那種隔離處理,我不太明白,是要做些什么樣的處理嗎?感謝
uj5u.com熱心網友回復:
其實你不妨放下你的問題,抽象出一個邏輯,研究一下:執行緒、異步委托、阻塞、臨界區、互斥、執行緒鎖這些基礎概念,畢竟從你的描述來看,你可能不容易描述清楚所有細節,單憑回復也無法替你完成作業,不如停下來用1-2天補補基礎。你這個需求的設計思路可以是這樣。
1.創建一個任務類,包含任務執行的邏輯和運行的狀態
2.每次啟動任務就是創建一個執行緒,并記錄下執行緒
3.需要同步的時候就是多個執行緒執行 Join,直到所有完成后,進入后續的操作。
4.執行緒要維持在200以內
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/269783.html
標籤:C#
上一篇:C# 泛型函式問題
下一篇:=>是什么意思
