Главная страница
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.059 c
2-1155895482
иван8511
2006-08-18 14:04
2006.09.10
Как сделать папку активной?


5-1139173939
homm
2006-02-06 00:12
2006.09.10
Хранение данных компонента


2-1155879537
Начинающий_1
2006-08-18 09:38
2006.09.10
Универсальное объявление типа переменной.


3-1152082799
ttt_111
2006-07-05 10:59
2006.09.10
Некорректное завершение программы.


2-1156153657
Itoixxx
2006-08-21 13:47
2006.09.10
checkbox