我有一个反序列化方法(XML),它运行良好,直到它到达X
个对象。在X
以下,反序列化的时间是可以接受的,并且被阻止的UI不是问题。但是,如果对象的数量大于X
(相对不太可能,但可能),则加载时间太长。一旦反序列化(或任何其他方法)启动,是否可以从UI线程跳转到后台线程,以便在反序列化花费太长时间时可以解锁UI线程?感谢
答案 0 :(得分:2)
在所有情况下只需在后台线程中进行反序列化。如果对象数量低于X,则不会出现问题,如果它大于X,则不会阻止UI。
您可以在后台工作程序中执行此操作,并将结果用于RunWorkerCompleted
事件(在UI线程中引发)
答案 1 :(得分:0)
不,一旦您从BCL工具请求反序列化,就无法切换线程类型。也许如果您编写自己的自定义反序列化器,您可以这样做,但只需要一个单独的线程(例如线程池)在所有情况下执行此任务会更有效(由于大案例) ),而不是在跨越X
之后。