0

Есть приложение, в нем обрабатываются большие данные в цикле, если цикл идет достаточно долго то приложение зависает и не обновляется его вид пока метод не завершится. Как сделать это правильно, чтобы программа не виснула?

UndefFox
  • 171
  • 2
    запустить обработку отдельным потоком. Например, на пуле потоков. – tym32167 Jan 10 '20 at 04:44
  • 1
    использовать асинхронность. запускать данный цикл в отдельном потоке. тогда не будет блокировки интерфейса приложения. Выложи код. – Денис Матюшкин Jan 10 '20 at 04:49
  • 2
    @tym32167 а использовать асинхронный метод тоже вариант? – UndefFox Jan 10 '20 at 05:22
  • Проще всего какой-нибудь BackgroundWorker использовать, а вообще вариантов много, уже перечислили. – CrazyElf Jan 10 '20 at 09:21

1 Answers1

2
  1. Если вы используете приложение для обработки больших данных из БД, то используйте асинхронность
  2. Если вам надо делать обработку данных только на вашей машине, то используйте параллельные вычисления

Источник

Также обратите внимание на объем обрабатываемых данных: при использовании больше чем 1 ГБ памяти, рекомендуется использовать x64 сборку

Ivan Vovk
  • 2,191
ishkin
  • 36