Вверх ↑
Ответов: 4657
Рейтинг: 760
#1: 2017-03-07 12:49:08 ЛС | профиль | цитата
Gunnman писал(а):
Как правильно использовать AsyncConnect?
Ну, действует оно так, как и остальные асинхронные методы: вызывается метод doConnect, стартует параллельный поток, в котором происходит подключение. Выполнение метода doConnect заканчивается. После этого, когда подключено или невозможно подключится - выдаётся событие onConnect/onErrorConnect соответственно. Для использования в цикле оно не подходит.
У тебя, вроде, правильно стоит поток в каждом мультике, только поставить AsyncConnect=False. Ещё поставил AutoReceive=False, чтобы зря каждый раз не создавало поток чтения данных.


Add(MainForm,2953706,21,105)
{
 Position=1
}
Add(MultiElementEx,913302,448,91)
{
 Mode=1
 link(onSwitch,16234302:doSynchronize,[])
}
BEGIN_SDK
  Add(EditMultiEx,1744314,21,21)
  {
   WorkCount=#5:##add|
   EventCount=#8:onSwitch|
   Width=377
   Point(##add)
   link(##add,15483795:doStart,[(53,27)(53,118)])
  }
  Add(TCPClient,4707401,203,98)
  {
   IP="192.168.0.100"
   Port=9090
   AutoReceive=0
   Point(onErrorConnect)
   Point(onErrorSend)
   link(onConnect,14925847:doEvent1,[])
   link(onErrorConnect,16520789:doWork1,[(291,132)(291,118)])
  }
  Add(Thread,15483795,105,112)
  {
   link(onExec,4707401:doConnect,[])
  }
  Add(Hub,14925847,252,112)
  {
   link(onEvent1,4707401:doDisconnect,[(279,118)(279,77)(182,77)(182,125)])
   link(onEvent2,16520789:doWork2,[])
  }
  Add(ChanelToIndex,16520789,315,112)
  {
   link(onIndex,1744314:onSwitch,[(372,118)(372,27)])
  }
END_SDK
Add(For,9428280,399,91)
{
 End=29
 link(onEvent,913302:##add,[])
}
Add(Button,16480008,343,91)
{
 Left=5
 Top=20
 link(onClick,9428280:doFor,[])
}
Add(ListBox,4657886,560,91)
{
 Left=85
 Top=20
 Width=70
 Height=235
}
Add(Synchronize,16234302,507,91)
{
 link(onSync,4657886:doAdd,[])
}
карма: 26

0
Редактировалось 1 раз(а), последний 2017-03-07 12:50:22