我有一个反序列化方法(XML),运行良好,直到它达到X
对象数。在X
以下,反序列化所需的时间是可以接受的,并且被阻止的UI不是问题。但是,如果对象数量大于X
(相对不太可能,但可能),则加载时间太长。一旦反序列化(或任何其他方法)启动后,是否可以从UI线程跳转到后台线程,以便在反序列化时间过长时解锁UI线程?谢谢切换到后台线程并继续执行方法
0
A
回答
2
只要在所有情况下在后台线程中进行反序列化。如果对象数量低于X,它不会成为问题,并且如果它大于X,它将不会阻止UI。
您可以在后台工作人员中执行此操作,并使用RunWorkerCompleted
事件(这是在UI线程上提出的)
0
不,一旦你请求BCL设施的反序列化,你不能切换线程类型。也许如果你编写了你自己的自定义解串器,你可以这样做,但是在所有个案(由于大案例)而不是在之后简单地使用单独线程(例如线程池)执行此任务会更有效你过境X
。
相关问题
- 1. 继续下载被切换到后台
- 2. 在后台继续执行任务
- 3. Android - 切换方向后继续检查
- 4. 在后台运行一个任务并继续执行
- 5. 在后台运行Python HTTPServer并继续执行脚本
- 6. 在主线程中执行任务的继续的方法
- 7. 可以使用哪些方法使线程等待事件并继续执行?
- 8. 执行器线程在热部署后继续运行
- 9. 线程在关闭应用程序后继续执行
- 10. 后台线程完成后C#执行方法
- 11. 如何在这种情况下继续执行后台进程
- 12. 忽略KeyError并继续执行程序
- 13. 继续在后台运行次要线程
- 14. IE收到302后继续执行JS?
- 15. SIGALRM:在执行后继续执行
- 16. 睡眠后继续线程
- 17. 恢复线程的上下文并继续执行?
- 18. 如何在获得异常后继续执行线程
- 19. 主线程在pthread_create()后不会继续执行
- 20. 从后台线程执行的其他方法执行主线程上的方法?
- 21. 在转到后台并返回前台后无法继续从AVAssetReaderOutput读取
- 22. Haskell:继续执行程序
- 23. 继续执行程序
- 24. 使用NSNotification在后台线程执行方法
- 25. 如何在等待在同一个线程上执行后继续执行?
- 26. 方法结束后执行线程吗?
- 27. Laravel确认控制器方法并继续执行任务
- 28. 如何在返回数据后继续执行方法?
- 29. 等待方法的n个执行再继续后完成
- 30. 返回语句后继续执行方法
谢谢。我想这将是最好的方式。我最初并不想在bg上做所有的事情,因为在反序列化完成之前用户可能会尝试访问这些对象。但是,通过该事件通知,我可以检查它是否已完成。 – XSL 2010-09-27 18:12:58