Конференция "Прочее" » Запустить одну процедуру несколькими потоками [D7, WinXP]
 
  • Jee (04.09.10 14:24) [0]
    Мастера Дельфи (7), помогите - надо одновременно принимать данные с 16 СОМ-портов - как по выбору запускать 16 процедур опроса? для каждого писать свою или можно написать одну и её тиражировать -в нужные моменты стратуя? как?
    сейчас один СОМ-порт опрашивается отдельным потоком
    type
     TCommThread = class(TThread)
     private
       Procedure QueryPort;
     protected
        Procedure Execute; override;
     end;
    надо написать 16 таких потоков? и никак не оптимизировать?
  • Медвежонок Пятачок © (04.09.10 14:44) [1]
    ага.
    причем понадобится 16 отдельных компьютеров в 16 разных квартирах в 16 разных городах.
  • Jee (04.09.10 15:09) [2]
    не смейтесь ( я понимаю, что ламер и юзер, но я хочу присоедениться к рядам профессионалов, плюс проект горит с 16 модемами, начальство шкуру дерет - а с программированием только началось знакомство - многое без проблем - а с потоками - созданием новых из цикла - пока не получается, погуглил в яндексе - здесь самая адекватная инфа! Прошу, поможите чем можите - с мира по нитке - голому гора ниток!
  • Медвежонок Пятачок © (04.09.10 16:05) [3]
    TCommThread = class(TThread)
    private
      Procedure QueryPort;
    protected
       Procedure Execute; override;
    public
     constructor CreateIt(const AComName : string) ;
    end;
  • Jee (04.09.10 17:11) [4]
    Похоже, что и destructor нужен, огромное Человеческое Спасибо за наВодку!!! буду гуглить в этом направлении!!!
  • Плохиш © (04.09.10 17:12) [5]

    > Jee   (04.09.10 17:11) [4]
    >
    > Похоже, что и destructor нужен

    Деструктор там уже есть.
  • Юрий Зотов © (04.09.10 17:21) [6]
    > Jee   (04.09.10 14:24)  

    Надо написать 1 класс такого потока и создать 16 его экземпляров - каждый на свой порт.
  • Anatoly Podgoretsky © (04.09.10 17:25) [7]
    > Jee  (04.09.2010 17:11:04)  [4]

    destructor здесь не нужен
  • cwl © (04.09.10 23:15) [8]
    токмо про синхронизацию (ежели эти 16 используют общие данные) не забывать. возможно, скармливать данные экземпляру другого класса - щтобы другие потоки не стояли в очереди
  • vpivo © (23.10.10 21:33) [9]
    Есть подозрение, что в Вашей TCommThread.Execute ... ну как бы это сказать ... не очень хорошо.
  • Иксик © (24.10.10 02:06) [10]

    > Плохиш ©   (04.09.10 17:12) [5]
    >
    >
    > > Jee   (04.09.10 17:11) [4]
    > >
    > > Похоже, что и destructor нужен
    >
    > Деструктор там уже есть.


    :)))
  • GanibalLector © (25.10.10 11:44) [11]
    А где ты нашел 16 портов? Это что ж за ПК такой?
    Ну, 4 я еще пойму. Но 16 ??? Это не шутка?
  • RWolf © (25.10.10 11:59) [12]

    > GanibalLector ©   (25.10.10 11:44) [11]


    > Ну, 4 я еще пойму. Но 16 ??? Это не шутка?

    всего-то четыре копеечных платы расширения PCI; в промышленных и побольше бывает.
  • Slym © (25.10.10 12:04) [13]
    GanibalLector ©   (25.10.10 11:44) [11]
    в обычном кассовом аппарате 8 портов, на всякие ридеры терминалы, фискальники :) еще расширить можно...
    в стареньком банкомате сом портов не меньше...
  • GanibalLector © (25.10.10 12:38) [14]
    2 RWolf ©   (25.10.10 11:59) [12]

    Я видел (и использовал) такие PCI платы, но только там 2 порта. Даже если предположить, что существует с 4 портами, то тогда возникает проблема со слотами на ПК. Где найти 4 свободных PCI  слота? Гемморойно, короче.

    Slym ©   (25.10.10 12:04) [13]
    >в обычном кассовом аппарате 8 портов
    Уверен? Я только ими и занимаюсь. 4 максимум! Откуда 8?
    http://talla2k.livejournal.com/tag/разъем
  • RWolf © (25.10.10 12:47) [15]

    > GanibalLector ©   (25.10.10 12:38) [14]

    просто как пример, платы на 4 и 8 портов: http://www.umx.ru/moxa.html.
    а уж переходников USB-COM можно подключить и вовсе немеряно; а это ещё по одному COM-порту каждый.
    ну, и PCI-разъёмов на разных машинах по-разному. На десктопах ныне обычно ставят мало, да
  • Anatoly Podgoretsky © (25.10.10 12:49) [16]
    > GanibalLector  (25.10.2010 12:38:14)  [14]

    16 портовые платы обычное явление, практически на любые типы интерфейсов
    есть.
    С разъемами проблем нет, они в комплекте
  • miek (25.10.10 19:18) [17]
    Там имелся в виду кассовый терминал (POS). В обычных кассах я и вправду больше 4 не видел.
  • Slym © (26.10.10 07:07) [18]
    Slym ©   (25.10.10 12:04) [13]
    занимаюсь

    Подключал недавненько POS терминалы мне достался COM8... все остальные были заняты...

    Стационарный сканер.
    Ручной сканер (как-то на клаву зацеплен чтоли)
    Фискальник
    Выносное табло
    Еще какаято хрень
    Терминал сбера
    Терминал Золотой короны
    Мой терминал :)
 
Конференция "Прочее" » Запустить одну процедуру несколькими потоками [D7, WinXP]
Есть новые Нет новых   [134431   +13][b:0][p:0.001]