Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.06 c
15-1155885736
DVM
2006-08-18 11:22
2006.09.10
Возможные глюки при 100% загрузке процессора


15-1155645054
гастрит
2006-08-15 16:30
2006.09.10
скрипт


15-1155927009
ronyn
2006-08-18 22:50
2006.09.10
Завершение работы Виндовс


1-1153979909
Calibr
2006-07-27 09:58
2006.09.10
Как определить запускающую программу по расширению


5-1139238792
webpauk
2006-02-06 18:13
2006.09.10
Показать поля БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский