Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

Совместное использование TTable   Найти похожие ветки 

 
Alex_C   (2008-04-03 16:54) [0]

Вопрос: есть справочная таблица TTable. Ее одновременно могут использовать несколько тредов. Естественно возникает проблема, когда сразу несколько тредов к ней обращаются. Правильно ли я сделал такую ф-цию поиска, чтобы этого изизбежать:
procedure FindInTable(Table: TTable; CS: TRTLCriticalSection);
begin
 EnterCriticalSection(CS);
 try
   Table.First;
   // Чего-то там ищем
 finally
   LeaveCriticalSection(CS);
 end;
end;
Естественно критическая секция определена ранее одна для всех процессов.


 
Сергей М. ©   (2008-04-03 16:56) [1]


> TTable. Ее одновременно могут использовать несколько тредов


Если мне не изменяет память, не могут, даже при организации синхронного доступа.


 
Игорь Шевченко ©   (2008-04-03 16:57) [2]

многопоточное приложение для BDE должно следовать описанию в справке.

а правильно ты сделал или нет, тебе покажет твой собственный опыт.


 
Loginov Dmitry ©   (2008-04-03 22:51) [3]

> Правильно ли я сделал такую ф-цию поиска, чтобы этого изизбежать:


Нет. Не правильно. Для каждого треда необходимо создавать отдельно TDataBase, TSession и TTable/TQuery. Это намного проще, чем при твоем подходе ловить потенциальные глюки в дальнейшем. А они будут, особенно, если с TTable связаны какие-либо визуальные компоненты.


 
DrPass ©   (2008-04-03 23:48) [4]


> Если мне не изменяет память, не могут, даже при организации
> синхронного доступа

Через Synchronize должно получиться, в этом случае процедурка будет переключаться в контекст основного потока



Страницы: 1 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1205304856
Ega23
2008-03-12 09:54
2008.04.27
Начата регистрация на КБД-2008


15-1205174551
Алексей К.
2008-03-10 21:42
2008.04.27
DBE для Delphi 7 Personal


15-1205208015
Slider007
2008-03-11 07:00
2008.04.27
С днем рождения ! 11 марта 2008 вторник


2-1206806274
KiLLiR
2008-03-29 18:57
2008.04.27
Запрет на вставку текста из буфера в Edit


15-1205272268
No_Dead
2008-03-12 00:51
2008.04.27
От нечего делать, или Квадрат Дюрера%>