2010-09-27 64 views
0

我有一個反序列化方法(XML),運行良好,直到它達到X對象數。在X以下,反序列化所需的時間是可以接受的,並且被阻止的UI不是問題。但是,如果對象數量大於X(相對不太可能,但可能),則加載時間太長。一旦反序列化(或任何其他方法)啓動後,是否可以從UI線程跳轉到後臺線程,以便在反序列化時間過長時解鎖UI線程?謝謝切換到後臺線程並繼續執行方法

回答

2

只要在所有情況下在後臺線程中進行反序列化。如果對象數量低於X,它不會成爲問題,並且如果它大於X,它將不會阻止UI。

您可以在後臺工作人員中執行此操作,並使用RunWorkerCompleted事件(這是在UI線程上提出的)

+0

謝謝。我想這將是最好的方式。我最初並不想在bg上做所有的事情,因爲在反序列化完成之前用戶可能會嘗試訪問這些對象。但是,通過該事件通知,我可以檢查它是否已完成。 – XSL 2010-09-27 18:12:58

0

不,一旦你請求BCL設施的反序列化,你不能切換線程類型。也許如果你編寫了你自己的自定義解串器,你可以這樣做,但是在所有個案(由於大案例)而不是在之後簡單地使用單獨線程(例如線程池)執行此任務會更有效你過境X