我的程序在創建時立即將文件從一個文件夾移動到另一個文件夾。這些文件將以每秒50次左右的速度進入。該程序監視兩個文件夾,並將這兩個文件夾中的文件發送到計算機上的某些目錄。圍繞類和GUI移動數據
我想弄清楚的一件事是可能會彈出的錯誤。我想過使用messagebox.show讓用戶知道讓我們說「該文件夾不存在」,但是有10000個左右的文件無法移動,或者如果訪問目錄被拒絕,計算機可能會耗盡內存10000個彈出窗口。
另一種方法是在GUI控件上向用戶顯示消息,然後停止文件觀察器。問題是,我的folderwatcher類無法訪問我的GUI中的狀態欄。因此,如果狀態欄被稱爲消息,我不能簡單地將「messages.text」分配給來自folderwatcher類中拋出的異常的錯誤消息。
我被告知,將GUI的控制權交給folderwatcher類是不好的做法,因爲它違背了面向對象編程的目的。 (沿着這些線)。
所以,我想構建一個簡單存儲數據/狀態消息的類。我的GUI將掛鉤到該類,並且在發生錯誤時,folderwatcher類將更新它。發生這種情況時,我的GUI將會更新,並且messages.text會顯示用戶看到的錯誤。
我認爲這個概念會工作得很好,但我不知道從哪裏開始。如果您需要任何其他信息,我會很樂意提供,但反饋和提示/技巧是我正在尋找的。
此外,我的方法是構建一個單獨的類,其中持有信息的最佳方法來轉移類和GUI之間的錯誤消息?還是有更簡單的方法來做到這一點?
此致
tf.rz.謝謝你的幫助!非常感謝。
任何不讓你的GUI(或任何其他人關心)可以訂閱的文件夾監視器發生事件的原因是什麼? –
@Pete M:不是,這也是一種可行的方法,但它超出了我目前正在擴展的知識範圍。你能否告訴我如何實現你的想法? –
有關它的價值,請參閱MSDN上的IObserver接口的此文檔。 http://msdn.microsoft.com/en-us/library/dd783449.aspx你的問題實際上是訂閱者/發佈者模式。 filewatcher「發佈」了一些東西(在這種情況下是錯誤),並且用戶界面對OnError事件「懷疑」。 – Icarus