|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.09.2017, 23:55 | #1 |
Регистрация: 05.11.2012
Сообщений: 3
|
Вопрос по работе с потоками
Добрый день, дамы и господа!!!
подскажите пожалуйста тормозу=))) каким образом запущенный в потоке OLE процесс(точнее excel) можно передавать от одного потока в другой??? Большое спасибо за внимание и поддержку... |
14.09.2017, 01:36 | #2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
А что конкретно передавать нужно? И главное - для чего?
|
14.09.2017, 11:11 | #3 |
Регистрация: 05.11.2012
Сообщений: 3
|
тема в следующем... прошу учесть, мои знания по работе с потоками минимальны (т.е. какой нить статус бар прикручивал, а что нить серьёзней не делал=))...
написал следующую прогу... открывает следующую пакчку ёкселей перечень номеров документов -1 файл список платежей совершенных по годам - 4 файла (большие каждый метров по 150) далее ищем соответствующие номера доков в списке платежей, суммируем поступление денег по каждому доку и выводим перечень с соответствующими данными. сейчас все работает но медленно 3-6 дней на выполнение задачи. для решения данной задачи решил разложить на потоки. начал делить на потоки и что то не получается. не понимаю как обратиться к запущенному в потоке ёкселю из основного потока. PS Сделать то же самое но на скуле не предлагать=))) специфика работы организации=))) Последний раз редактировалось donich.aleksei; 14.09.2017 в 11:13. |
14.09.2017, 13:32 | #4 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
мда... потоки скорости не добавят...
надо менять способ доступа к данным: или открывать таблицы как БД или портировать в БД и уже с БДработать... в одном банке формирование выписки в Ворд делалось сначала в промежуточный CSV а потом на VBA через замену Find/Replace в шаблон... на обычных выписках все работало, но пришел клиент с большим потоком платежек и и попросил выписку за год... 4 дня карл! и доползло до середины... поиск замедлялся в геометрической прогрессии... Я сохранил шаблон в RTF нашел в этом RTF таблицу и код строки и слепил скрипт пишуший напрямую из CSV в RTF файл - 15 сек, это несколько порядков разницы!
Не стесняемся, плюсуем!
|
14.09.2017, 15:10 | #5 |
Регистрация: 05.11.2012
Сообщений: 3
|
по логике вещей должен прибавить,
как я понимаю можно разобрать четыре файла в отдельные потоки и параллелить поиск, а затем в основном потоке склеивать и кидать на выход..... более серьезное рисовать не хочу... и так все что сделано чистый "факультатив"....... |
14.09.2017, 16:21 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Slym +1
Че такое на скуле не предлагать? Потянуть sql-запросом из делфи таблицу это на скуле? А там уж либо клиентдатасеты с индексами и программно парсить, либо исхитрится все запросом, но большим и сложным ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
14.09.2017, 20:08 | #7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
В основном потоке создаете подключение к каталогу где надо что-то искать из N справочников. Далее для справочников пишите поток, с событием получения данных, далее в поток отдаете файл, вешаете событие, запускаете поток.
При возникновении события запускаете крит. секцию, ищите в каталоге данные справочник, что-то ещё... закрываете крит. секцию. Не знаю как вам это поможет, у вас тормоз в основном каталог, а не справочники, потому что вам одновременно из 4 точек надо обратить к 1 файлу, а так нельзя, только методами синхронизации. А потому ресурс который опрашиваете из разных мест, надо бы в БД конвертировать. Но если ресурсы сервера позволяют "жирануть", то на каждый справочник открывайте каталог в потоке, и будет вам ускорение. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос о работе | Questionier | Свободное общение | 15 | 19.01.2015 07:17 |
Вопрос по работе с Qt | CarmaC | Общие вопросы C/C++ | 3 | 16.07.2011 13:52 |
Ошибка при работе с потоками | Shouldercannon | Общие вопросы Delphi | 2 | 21.07.2010 14:35 |
Ошибка при работе с потоками( | _SeRGeaNT_ | Общие вопросы C/C++ | 2 | 11.01.2009 14:50 |
Ошибка при работе с потоками | vitalik007 | Общие вопросы Delphi | 6 | 09.03.2008 09:25 |