У меня есть метод десериализации (XML), который хорошо функционирует до тех пор, пока он не достигнет X
количества объектов. Ниже X
время, необходимое для десериализации, приемлемо, и пользовательский интерфейс, который заблокирован, не является проблемой. Однако, если количество объектов больше X
(относительно маловероятно, но возможно), время загрузки слишком велико. Можно ли перейти от потока пользовательского интерфейса к фоновому потоку, как только десериализация (или любой другой метод) запущена, чтобы я мог разблокировать поток пользовательского интерфейса, если десериализация занимает слишком много времени? спасибоПереключиться на фоновый поток и продолжить выполнение метода
0
A
ответ
2
Просто выполните десериализацию в фоновом потоке во всех случаях. Это не будет проблемой, если количество объектов ниже X и оно не будет блокировать пользовательский интерфейс, если он больше X.
Вы можете сделать это в фоновом работнике и использовать результат в RunWorkerCompleted
Событие (которое поднимается на потоке пользовательского интерфейса)
0
Нет, если вы попросили десериализацию из объекта BCL, вы не можете переключить тип потока. Возможно, если бы вы написали свой собственный десериализатор, вы могли бы это сделать, но было бы гораздо эффективнее просто иметь отдельный поток (например, threadpool) для выполнения этой задачи в всех случаях (из-за больших случаев), а не после вы пересекаете границу X
.
Смежные вопросы
- 1. Как переключиться на поток Git?
- 2. Как продолжить выполнение метода после возвращения данных?
- 3. Продолжить выполнение другой темы
- 4. Загрузка изображения на фоновый поток
- 5. Как начать и остановить фоновый поток iOS
- 6. Как остановить выполнение называемого метода в Java и продолжить выполнение метода
- 7. остановить и продолжить выполнение JavaScript
- 8. Восстановить контекст потока и продолжить его выполнение?
- 9. исключением ручки и продолжить выполнение
- 10. Как создать фоновый поток
- 11. Как сделать фоновый поток паузы, а затем продолжить по нажатию кнопки?
- 12. Java 8 параллельный поток или выполнение метода
- 13. Фоновый поток Windows 8?
- 14. Как создать фоновый поток?
- 15. RxJava - Продолжить бесконечный поток
- 16. Флажок-SocketIO eventlet не может переключиться на другой поток
- 17. UIManagedDocument, фоновый поток и родительский контекст
- 18. Сохранение ссылки на фоновый поток в Grails?
- 19. Продолжить выполнение после рендера
- 20. Продолжить выполнение задачи в фоновом режиме
- 21. Продолжить поток на основе полученных данных
- 22. Haskell: продолжить выполнение программы
- 23. Lua продолжить выполнение скрипта
- 24. Продолжить выполнение в Exception
- 25. Продолжить выполнение подпроцесса
- 26. Продолжить Выполнение команды Dóm
- 27. как продолжить выполнение заданий?
- 28. Продолжить выполнение программы
- 29. Продолжить выполнение после исключения
- 30. Когда Asp.net завершает фоновый поток?
спасибо. Думаю, это будет лучший способ. Я изначально не хотел делать все это на bg, потому что пользователь может попытаться получить доступ к объектам до завершения десериализации. Однако, с уведомлением о событии, я могу проверить, выполнено ли это. – XSL