0
我想實現的東西,如:C#並行多任務
創建一批蒙戈的查詢
對於每個查詢,得到的反序列化蒙戈數據設置爲
ObjectA
所有
ObjectA
映射到ObjectB
列表(需要給予一定的時間,我們正在與幾百萬對象的工作)當映射完成,upserts所有
ObjectB
(中環),以一個新的蒙戈DB/collection(也需要一些時間),並開始讀取/映射下一個數據用,如果一個查詢設置接下來的映射是最後蒙戈UPSERT結束前完成,等待它完成,然後開始編寫數據設置爲蒙戈
現在,我一直在Task
玩弄的時候,我覺得它的方式去,但我很難得到如何做到這一點。
我應該運行2個任務數組嗎?
如何創建一個「取/圖任務」和「寫入MONGO任務」之間的「依賴」?
任何幫助表示感謝,謝謝!
可以使用WaitHandle基類作爲ManualResetEvent類對象實例,例如 –
當我閱讀它時需要某種同步以避免賽車條件。這使得無法執行多線程,因爲您希望避免在將前一個對象插入到新數據庫之前完成下一個對象?我現在唯一能想到的或者正在做的就是用Parallel.for(每個)進行映射,並設置保留順序的選項。但是「插入」必須以任何方式完成。 – woutervs
實際上,「插入」不需要按順序完成。我可以使用多線程,但它會導致內存消耗問題,因爲我必須將大量數據傳遞給線程。 @ArturMustafin:我會研究一下,可能是一種可能性。 – LaurentH