[Delphi 7] опять потоки

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by anatoliy, 17 Apr 2012.

  1. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Всем привет. Я знаю что вопросов по потоком было очень много, но я так и не нашел четкого ответа для себя на вопрос: Как использовать потоки?

    Мне нужно, чтобы при нажатии на кнопку из формы эдит брались некоторые данные в поток, а количество потоков регулировалось тоже отдельным эдит.

    Мне нужен именно код(исходник) простейшей программы с использованием потоков, а не огромная статья по теме потоки и, если можно, с комментариями к коду.
    Спасибо.
     
  2. Tip.the.besT

    Tip.the.besT Member

    Joined:
    24 Jun 2009
    Messages:
    267
    Likes Received:
    10
    Reputations:
    4
    линк
     
  3. ree4

    ree4 New Member

    Joined:
    9 Mar 2011
    Messages:
    28
    Likes Received:
    2
    Reputations:
    0
    пока не разобрался с потоками, заруби себе на носу, что напрямую к компонентам из потока обращаться нельзя.
    а так посмотри видио http://avtuh.ru/2010/04/09/delphi-dopolnitelnyj-potok-v-programme.html
     
  4. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    спасибо за инфу, отличное видео.
    Если я правильно понят то, чтобы обратиться чему либо на форме, нужно прописывать форм1.(и тут то, к чему обращаемся)

    Возник такой вопрос, если например открывать страницу в webbrowser в потоке то, при выполнении нескольких потоков запустится несколько webbrowser'ов или новый поток будет закрывать старый?
     
  5. Tip.the.besT

    Tip.the.besT Member

    Joined:
    24 Jun 2009
    Messages:
    267
    Likes Received:
    10
    Reputations:
    4
    Умнее использовать tidhttp или httpsend в потоке. Но если ты будешь создавать twebbrowser -ы, то ты их даже не увидишь если не задашь им параметры для появления, но если всё сделаешь то просто будут друг на друга наверно накладываться.
     
  6. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    нужно имеено twebbrowser -ы
    + ограничение - не более 4 потоков
     
  7. Tip.the.besT

    Tip.the.besT Member

    Joined:
    24 Jun 2009
    Messages:
    267
    Likes Received:
    10
    Reputations:
    4
    Ну с ограничением то проблем нет.
    Code:
    if strtoint(edit1.text)<=4 then begin
    for 1 to strtoint(edit1.text) do
    potok.create;
    end else showmessage('Нельзя ставить больше 4 потоков!');
    
    Дак тебе надо, что бы вебраузеры отображались? А, что мешает подделать запросы инди или синапс?
     
  8. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Не ок его исходники, они жрут и не выгружают память (речь о потоках).
     
    #8 t3cHn0iD, 19 Apr 2012
    Last edited: 19 Apr 2012
  9. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    да, нужно чтобы до 4 браузеров было открыто, и каждый в отдельном потоке
     
  10. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    как выгружать ?
     
  11. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Код создания потоков изменить , а вообще я бы посоветовал для начала прочитать вот это - http://forum.vingrad.ru/topic-60076.html
     
    #11 t3cHn0iD, 20 Apr 2012
    Last edited: 20 Apr 2012
  12. Tip.the.besT

    Tip.the.besT Member

    Joined:
    24 Jun 2009
    Messages:
    267
    Likes Received:
    10
    Reputations:
    4
    А что там выгружать? tidhttp он кинул на форму, а не создал в руками. Всё само почиститься.

    ТС, а вот если ты сам создаёшь - http:=tidhttp.create; - то тогда, когда ты поработаешь, ты должен убрать за собой - http.free;

    P.S. Но голос у мужичка пидор**ватый :D
     
  13. anatoliy

    anatoliy New Member

    Joined:
    30 Jun 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Tip.the.besT, это я понял,
    но проблема всё еще осталасЬ, как создать отдельный Twebbrowser в потоке и как к ниму обратиться
     
  14. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Прога на основе его сорса будет содержать утечку памяти.

    Его нужно создать в конструкторе и очищать в деструкторе, тогда можно быть уверенным, что все будет работать так как надо.Только не знаю на сколько это актуально насчет твеббраузера.


    http://homenet.beeline.ru/index.php?showtopic=203539
    http://www.gunsmoker.ru/2010/02/redux.html

    - к размышлению
     
    #14 t3cHn0iD, 24 Apr 2012
    Last edited: 24 Apr 2012