|
|
|
Adodb.connection and multithreading
|
|||
|---|---|---|---|
|
#18+
buserВарианты 1. - не делать так... adAsyncExecute в основном потоке... 2. - в каждом новом потоке перед соз-м COM вызывать CoInitialize Какие преимущества многопоточности (CreateThread) перед асинхронным выполнением (adAsyncExecute) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 11:34 |
|
||
|
Adodb.connection and multithreading
|
|||
|---|---|---|---|
|
#18+
buser, у меня еще такой вопрос, даже не вопрос а ситуция. все работает в открытом VB, а када я создаюexeшник, то при закпуске оного вылезает ошибка, которая требует перезапустить exeшник. Компилировал с P-code. и второй вопросик, что же такое adAsyncExecute? что эта команда делает? для чего она? желательно на какомнть понятном примере, а не так как в МСДН)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 15:40 |
|
||
|
Adodb.connection and multithreading
|
|||
|---|---|---|---|
|
#18+
Вот что писал про adasyncexecute Processor Остальные вопросы к buser остаются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 16:06 |
|
||
|
Adodb.connection and multithreading
|
|||
|---|---|---|---|
|
#18+
marvanКакие преимущества многопоточности (CreateThread) перед асинхронным выполнением (adAsyncExecute) ?CreateThread это ты делаешь второй поток на клиенте. Главный поток продолжает заниматься отрисовкой картинок, получает события от клавиатуры-мышки. А второй поток запустил запрос в базу данных и ждет ответа от нее. Пока БД не ответит второй поток висит. А если делаешь в одном своем потоке RecordSet.open с флагом adAsyncExecute, то open вернется сразу же, не ожидая ответа от БД. После этого ты должен сам в главном потоке опрашивать свой recordset "закончил ли он работу". И при этом не забывать ожидать событий от мышки и рисовать картинки на экране. Фактически там все равно будет создан второй поток самим ADO, но он будет личным потоком драйвера ADO и ты до него доступа не имеешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 18:51 |
|
||
|
Adodb.connection and multithreading
|
|||
|---|---|---|---|
|
#18+
White Owlесли делаешь в одном своем потоке RecordSet.open с флагом adAsyncExecute, то open вернется сразу же, не ожидая ответа от БД. Спорное утверждение. У меня событие ExecuteComplete происходит только после того, как процедура отработает. И ни кто не виснет и опрашивать ни кого не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2006, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2165553]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 466ms |

| 0 / 0 |
