|
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 19
|
||||||
Выполнение длительных вычислений и операций в отдельном потоке24.01.2014, 20:21. Показов 3539. Ответов 9
Метки нет (Все метки)
Добрый вечер.
Возникла проблема с вычислениями. Из базы данных (файл) читаются числа и выполняются с ними операции.. математические... Когда из файла-базы читал массивы чисел до 10тыс. все было относительно нормально кроме скорости.. , когда пробовал брать больше - программа (консоль) просто виснет или сама закрывается... Ничего умнее как разбить процесс на потоки не придумал. (может что то логичнее есть?) Вопрос, в том как организовать потоки по типу:
0
|
||||||
| 24.01.2014, 20:21 | |
|
Ответы с готовыми решениями:
9
Выполнение метода в отдельном потоке без await/async ProgressBar в отдельном потоке Запустить метод в отдельном потоке |
|
|
|
| 25.01.2014, 02:21 | |
|
Может это поможет? BeginInvoke - EndInvoke
http://msdn.microsoft.com/ru-r... -snippet-1
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|
| 25.01.2014, 07:50 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 19
|
|||
| 25.01.2014, 12:27 [ТС] | |||
|
какие варианты? Добавлено через 47 секунд
0
|
|||
|
|
|
| 25.01.2014, 12:32 | |
|
Чтобы дождаться окончания предыдущего потока перед запуском следующего, попробуйте применить классы Lock, Mutex или Monitor.
0
|
|
|
|
|||
| 25.01.2014, 18:21 | |||
|
Это всё равно что нанять двух работников для уборки территории и выдать одну метлу.
0
|
|||
|
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 19
|
|
| 25.01.2014, 21:55 [ТС] | |
|
Wolfdp
задача примерно такая же. файл читается по частям, и именно часть в N тыс символов загружается в память.. пытаюсь по частям сжимать файл путем энтропии...
0
|
|
|
|
|
| 25.01.2014, 22:51 | |
|
Думаю, у Вас 2 варианта (в зависимости от задачи). Если окончательный результат получается путем последовательного вычисления, то потоки не спасут.
А вот если окончательный результат состоит, скажем так, из N предварительных результатов, которые можно рассчитывать независимо от остальных, то тут распараллеливание поможет. Разбить задачу на несколько подзадач, не зависящих друг от друга, их по потокам, и потом на основе результатов этих подзадач высчитывать результат. Немного нескладно получилось, не силен в объяснениях...
0
|
|
|
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
|
|||||||||||
| 26.01.2014, 10:02 | |||||||||||
|
Если вы применяете последовательное выполнение потоков, то для того, чтобы дождаться окончания предыдущего потока перед запуском следующего, попробуйте применить thr.Join(), где thr = это ваш объект типа ThreadStart.
И надо разобраться, отчего падает. Причина либо в реализации вычислений, либо в многопоточном доступе (Join от этого опмогает), либо память превысила 2 гБ на x86. В параллельных вычислениях я использую Parallel.Foreach, он ставит потоки в очередь и запускает их по мере освобождения ресурсов, занятых обработкой ранее запущенных вычислений. Например, в этом месте я хотел сделать так, чтобы вычислениями было занято не больше четырёх процессоров:
В догонку - пример запкска потока с одиданием окончания
0
|
|||||||||||
| 26.01.2014, 10:02 | |
|
Помогаю со студенческими работами здесь
10
Очередь сообщений в отдельном потоке Использование WebClient в отдельном потоке Выполнить код в отдельном потоке Таймер не запускается в отдельном потоке
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|