Вверх ↑
Ответов: 4622
Рейтинг: 746
#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