-
Господа, подскажите кто может!
Изучаю мнопоточность. Вынес в отдельный поток работу с базами ACCESS через ADO. Почему то все равно наблюдается периодическая «заморозка» главной формы.
С визуальными компонентами поток напрямую не взаимодействует.
В чем может быть проблема? В ADO ? Существуют ли какие- нибудь особые требования к описанию и использованию процедур и функций, которые используют отдельные потоки ?
-
Почему то все равно наблюдается периодическая «заморозка» главной формы.
В чем может быть проблема? В ADO ?
в том, что никуда ты ничего не вынес, а делаешь все в главном.
-
т.е. процедура потока должна быть в отдельном модуле? А используемые процедуры должны быть в том же модуле или могут быть в отдельном?
-
модули здесь вообще не при делах.
может быт один модуль и в нем сто потоков накодено.
а может быть стопитсот модулей и всего один поток.
-
а как нужно выносить?
-
нужно по другому. не как у тебя.
-
> В ADO ?
в нем потоки называются асинхронными запросами, их не следует выносить еще куда то.
> Существуют ли какие- нибудь особые требования
да. в любом деле есть особое требование - почитать справку конкретно по теме.
-
1. Поток более - менее нормально вынесен. Во всяком случае, если в него вставить тупой бесконечный цикл, то форма не замораживается.
2. На другом компе заморозки практически не замечаются. Сильно заметно было на ноуте.
3. Заморозка почему-то сильно наблюдается при выполнении WNetAddConnection2.
sniknik, я так понял что ADO тормозить не должен ?
-
На ноуте может тормозить заметнее, поскольку запросы идут к удаленной базе через точку доступа на телефоне через сотового оператора. Надо будет уточнить это момент.
-
> я так понял что ADO тормозить не должен ?
с чего, это ты понял? тебе говорят, что не следует перебегать дорогу на красный, тем более подземный переход есть... в ответ "значит я правильно над переходом перебегаю, машина не собьет".
???
> 1. Поток более - менее нормально вынесен.
это только твои слова. не более.
> Во всяком случае, если в него вставить тупой бесконечный цикл, то форма не замораживается.
а это тупая проверка,
сравнивать сложный объект со своими связями/потоками/блокировками, разнесенный как предполагаю на разные потоки/либо с тупой синхронизацией (раз блокирует) с простым циклом целиком в одном потоке.
-
Пока что работает только один поток кроме главной формы. Работает с базами. Делает выборку и запись в таблицы. Не понятно с чем вообще может блокироваться .
> я так понял что ADO тормозить не должен ?
с чего, это ты понял? тебе говорят, что не следует перебегать дорогу на красный, тем более подземный переход есть... в ответ "значит я правильно над переходом перебегаю, машина не собьет".
???
Не понятно что предлагается в качестве "подземного перехода"....
-
> Не понятно что предлагается в качестве "подземного перехода"....
придется повторить...
>> В ADO ?
> в нем потоки называются асинхронными запросами, их не следует выносить еще куда то.
-
А что можно использовать вместо ADO для работы с ACCESS например в отдельных потоках?
-
эта пестня хороша, начинай сначала
вы хоть в поисковик слова вбили и почитали про что тут пишут
-
ado и можно, в синхронном режиме, и полностью все определенное/созданное в отдельном потоке.
хотя, можно еще и dao, но он устарел еще больше чем jet. и да это независимо от потоков, просто - можно еще использовать. а то подозреваю у тебя сейчас представление, что для потоков нужно что-то особое, а не реальное, что ты работая с ним просто накосячил.
-
alvltss © (29.09.17 13:32)
Покажи код