Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.049 c
1-1153903742
youta
2006-07-26 12:49
2006.09.10
Уважаемые мастера! Как по кнопке Esc закрыть окно формы??


15-1155538042
Nic
2006-08-14 10:47
2006.09.10
Продажа программ


1-1154058249
DimonS
2006-07-28 07:44
2006.09.10
Расстояние по GPS


2-1155306514
Mr tray
2006-08-11 18:28
2006.09.10
Как узнать состояние ивента


2-1155884743
her
2006-08-18 11:05
2006.09.10
TBytes и TIdSocketHandle




   Наверх