Главная страница
    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.04 c
2-1156248430
J Cara
2006-08-22 16:07
2006.09.10
Что делать? rtl70.bpl.


9-1134643594
Рикитикитави
2005-12-15 13:46
2006.09.10
Насчет спрайтов в DelphiX


15-1155342176
belly_tiamat
2006-08-12 04:22
2006.09.10
Протокол HILTI дальномер PD28


15-1155824318
Дураг
2006-08-17 18:18
2006.09.10
А вы еще пользуетесь зомбоящиками?


3-1151585120
LDV
2006-06-29 16:45
2006.09.10
Медленно выполняется refresh





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский