|
Помогите решить проблему (Thread и IBDataSet)
|
|||
---|---|---|---|
#18+
Помогите решить проблему или хотя бы подскажите, где копать. Мне необходимо выполнять запросы в отдельных потоках. Я делаю, в общих чертах, так: Из главной формы (MainForm) создаю новую форму (FORMi), в которой будет отображаться результат запроса. Из FORMi создается и запускается поток, в котором собственно и выполняется запрос посредством IBDataSet, со своими IBDatabase и IBTransaction. На данном этапе все работает нормально: пока выполняется запрос в потоке, могу вернуться в MainForm, понажимать в ней кнопки, полистать списки, открыть еще несколько FORMi, со своими потоками и запросами. Но все это до тех пор, пока не попытаюсь что-нибудь сделать с открытыми в MainForm IBDataSet'ами, например, закрыть один из них. В этом случае все замирает: и MainForm и FORMi - как, если бы IBDataSet.Open (то, которое в потоке) я бы завернул в Synchronize. И это самое замирание длится пока не отработает поток с запросом (или, если их несколько, - то последний из них). Подскажите, кто может, что за фигня такая и куда смотрит наше правительсьво Спасибо за любой ответ. Valk, sod@dn.farlep.net ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2002, 07:22 |
|
Помогите решить проблему (Thread и IBDataSet)
|
|||
---|---|---|---|
#18+
Помогите решить проблему или хотя бы подскажите, где копать. Мне необходимо выполнять запросы в отдельных потоках. Я делаю, в общих чертах, так: Из главной формы (MainForm) создаю новую форму (FORMi), в которой будет отображаться результат запроса. Из FORMi создается и запускается поток, в котором собственно и выполняется запрос посредством IBDataSet, со своими IBDatabase и IBTransaction. На данном этапе все работает нормально: пока выполняется запрос в потоке, могу вернуться в MainForm, понажимать в ней кнопки, полистать списки, открыть еще несколько FORMi, со своими потоками и запросами. Но все это до тех пор, пока не попытаюсь что-нибудь сделать с открытыми в MainForm IBDataSet'ами, например, закрыть один из них. В этом случае все замирает: и MainForm и FORMi - как, если бы IBDataSet.Open (то, которое в потоке) я бы завернул в Synchronize. И это самое замирание длится пока не отработает поток с запросом (или, если их несколько, - то последний из них). Подскажите, кто может, что за фигня такая и куда смотрит наше правительсьво Спасибо за любой ответ. Valk, sod@dn.farlep.net ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2002, 07:22 |
|
Помогите решить проблему (Thread и IBDataSet)
|
|||
---|---|---|---|
#18+
Помогите решить проблему или хотя бы подскажите, где копать. Мне необходимо выполнять запросы в отдельных потоках. Я делаю, в общих чертах, так: Из главной формы (MainForm) создаю новую форму (FORMi), в которой будет отображаться результат запроса. Из FORMi создается и запускается поток, в котором собственно и выполняется запрос посредством IBDataSet, со своими IBDatabase и IBTransaction. На данном этапе все работает нормально: пока выполняется запрос в потоке, могу вернуться в MainForm, понажимать в ней кнопки, полистать списки, открыть еще несколько FORMi, со своими потоками и запросами. Но все это до тех пор, пока не попытаюсь что-нибудь сделать с открытыми в MainForm IBDataSet'ами, например, закрыть один из них. В этом случае все замирает: и MainForm и FORMi - как, если бы IBDataSet.Open (то, которое в потоке) я бы завернул в Synchronize. И это самое замирание длится пока не отработает поток с запросом (или, если их несколько, - то последний из них). Подскажите, кто может, что за фигня такая и куда смотрит наше правительсьво Спасибо за любой ответ. Valk, sod@dn.farlep.net ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2002, 07:23 |
|
|
start [/forum/topic.php?fid=40&msg=32023479&tid=1581288]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 374ms |
0 / 0 |