在我創建的應用程序中,我有兩個組件,我希望用戶能夠暫停/恢復。我想知道可能存在哪些標準模式來支持暫停和恢復,如果有的話?這兩個組件都執行大量的網絡I/O。看起來,在高層次上,我必須堅持每個組件都有的當前工作隊列 - 但是堅持它是我尋找這些標準模式的地方?我是否要序列化組件本身?我只是序列化工作?我可以序列化到什麼格式(xml,數據庫等)? .NET內置了什麼可能會有所幫助?有沒有任何圖書館可以提供幫助?如果用戶在同一個應用程序會話中暫停/恢復,或者在打開,關閉然後再次打開應用程序後暫停/恢復,是否有任何區別需要考慮?如何在不同的計算機上保存這些信息?C# - 如何實現暫停/恢復語義?
從過去的經驗或模式想到的任何建議?我希望這會變成更多討論這種做法的各種方式以及每種做法的利弊。謝謝。
你只是暫停組件之間的通信,「工作」會不斷積累,還是工作也暫停?如果暫停的工作需要終止應用程序,它肯定會有所作爲。消息隊列將允許您累積工作(消息)而沒有丟失應用程序終止的風險,但可能是比所需更重的解決方案。 – ScottS 2010-06-17 18:09:56
Scott - 不,應用程序暫停時工作不會累積。你能否解釋一下,如果應用程序終止,消息隊列將如何生存?也許提供關於你所指的這個消息隊列結構的更多細節?我的兩個組件都已經有工作隊列,但如果應用程序關閉,它們將無法生存。謝謝。 – Chad 2010-06-17 18:14:42