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

Вниз

Потоки и поточные преложения...   Найти похожие ветки 

 
rimm   (2006-08-14 16:49) [0]

Для чего впринцепи нужны многопоточные преложения, для чего их разрабатывают, можно ли, писать все на потоках? как реализовать отдельный поток подключения к БД???

Выдрал с книги код, написал не делфях, работает!!! :-) ,,,, но что мне это даёт? Спасёт ли мою программу один поток открытия файла???

procedure TForm1.Button1Click(Sender: TObject);
var
S:TFileStream;
begin
try
      S:=TFileStream.Create("files/DBGrid.sql",fmOpenRead);
      MainForm.ADOQuery1.SQL.LoadFromStream(S);
finally
      S.Free;
end;
    end;


 
tesseract ©   (2006-08-14 16:52) [1]


>  Спасёт ли мою программу один поток открытия файла???


Нет, случай тяжёлый, нужно как минимум 4.


 
Джо ©   (2006-08-14 16:52) [2]

:)

Вас подвел русский перевод английских понятий Thread и Stream. Это разные потоки. Те, что Thread это еще и "нити" и именно они относятся к понятию "многопоточные приложения".


 
Marser ©   (2006-08-14 17:00) [3]

TStream не имеет отношения к многопоточности.


 
rimm   (2006-08-14 17:03) [4]

Я написал тестовую программу работающую с БД, когда я ее запускаю, в DBGrid наченают загружаться данные (БД- 200000 записей), преходиться ожедать ;0), есть еще кнопка в программе, когда на нее нажимаешь, все записи перегоняются из БД в Memo, все практически висьнет!!
Т.е. форма делфи.. Как "спасти" потоками ( или нитями..) мою програмку..?
Как программу реализовать на потоках?
И чем это поможет?..


 
evvcom ©   (2006-08-14 17:06) [5]

> [0] rimm   (14.08.06 16:49)
> Для чего впринцепи нужны многопоточные преложения

ты книжки почитай... А?

> Выдрал с книги код

Зря... Книжки беречь нужно.
На английском 2 слова: Stream, Thread, на русский один перевод: поток. В первой части [0] речь наверняка идет о TThread, во второй о TStream.


 
Джо ©   (2006-08-14 17:06) [6]

> в DBGrid наченают загружаться данные (БД- 200000 записей

В DBGrid НЕ НУЖНО загружать 200000 записей. Использование потоков никак не спасает от таких ...кхм... неразумных действий.


 
tesseract ©   (2006-08-14 17:06) [7]


> rimm   (14.08.06 17:03) [4]


нити загрузку процессора не снизят.  

Надо переработать бд.
Например убрать db grid. Или выводить данные порциями через sql-запрос.


 
iZEN ©   (2006-08-14 17:06) [8]


> rimm   (14.08.06 17:03) [4]
>
> Я написал тестовую программу работающую с БД, когда я ее
> запускаю, в DBGrid наченают загружаться данные (БД- 200000
> записей), преходиться ожедать ;0), есть еще кнопка в программе,
>  когда на нее нажимаешь, все записи перегоняются из БД в
> Memo, все практически висьнет!!
> Т.е. форма делфи.. Как "спасти" потоками ( или нитями..)
> мою програмку..?
> Как программу реализовать на потоках?
> И чем это поможет?..
На Delphi нужно изворачиваться. На Java "чуткие интерфейсы" — в порядке вещей.


 
StriderMan ©   (2006-08-14 17:10) [9]


>  написал тестовую программу работающую с БД, когда я ее
> запускаю, в DBGrid наченают загружаться данные (БД- 200000
> записей), преходиться ожедать ;0), есть еще кнопка в программе,
>  когда на нее нажимаешь, все записи перегоняются из БД в
> Memo, все практически висьнет!!

1. Зачем подгружать из БД сразу все 200000 записей?
2. Зачем загружать все в Memo? есть ведь DBGrid


 
Marser ©   (2006-08-14 17:13) [10]

Автор, а вам про Query что-то известно?


 
Ketmar ©   (2006-08-14 17:17) [11]

> [8] iZEN ©   (14.08.06 17:06)
не нужно "изворачиваться". нужно просто правильно код писать.


 
Marser ©   (2006-08-14 17:26) [12]

> [11] Ketmar ©   (14.08.06 17:17)
> > [8] iZEN ©   (14.08.06 17:06)
> не нужно "изворачиваться". нужно просто правильно код писать.

Для перегонки базы в текст никаких извратов не нужно.


 
iZEN ©   (2006-08-14 18:11) [13]

Ketmar ©   (14.08.06 17:17) [11],
Marser ©   (14.08.06 17:26) [12],
я об ЭТОМ (выделено жирным шрифтом):

> rimm   (14.08.06 17:03) [4]
> есть еще кнопка в программе,
>  когда на нее нажимаешь, все записи перегоняются из БД в
> Memo, все практически висьнет!!

> Т.е. форма делфи.. Как "спасти" потоками ( или нитями..)
> мою програмку..?
> Как программу реализовать на потоках?
> И чем это поможет?..


Попробуйте "отпустить" кнопку на длительной операции в Delphi. Без извратов с отдельной нитью не получится. А ведь нужно ещё не дать повторно выполнить ту же команду, пока не отработает первая команда (не просто задесэйблить кнопку, но предотвратить вызов команды на повторную операцию из других возможных нитей).


 
VirEx ©   (2006-08-14 19:12) [14]


>  [13] iZEN ©   (14.08.06 18:11)

читай:

>  [11] Ketmar ©   (14.08.06 17:17)


 
Marser ©   (2006-08-15 11:18) [15]

> Без извратов с отдельной нитью не получится.

Почему-то никогда не считал это извратом...



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

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

Наверх




Память: 0.5 MB
Время: 0.03 c
15-1155559772
rimm
2006-08-14 16:49
2006.09.10
Потоки и поточные преложения...


15-1155584405
ronyn
2006-08-14 23:40
2006.09.10
Как создать приложение под разные ОС


2-1156043410
Mikes
2006-08-20 07:10
2006.09.10
Запуск приложения в DELPHI.


4-1147767225
aleks_z
2006-05-16 12:13
2006.09.10
SetupApi


3-1151919542
Mishenka
2006-07-03 13:39
2006.09.10
База видна только на компьютерах, на которых установлена Delphi