- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
// Qt QML >:D
UI_Button
{
id: bt_connect
height: 40
width: 150
radiusBorder: 20
anchors.right: led_connection.left
anchors.rightMargin: 10
anchors.verticalCenter: parent.verticalCenter
textOn: qsTr("Отключиться")
textOff: qsTr("Подключиться")
state: putState(QVipGUI.btConnection)
onClicked:{
if(QVipGUI.btConnection !== GuiDefines.DEF_STATE_DIMMED) {
if(QVipGUI.btConnection === GuiDefines.DEF_STATE_OFF) {
QVipGUI.setLedConnection(GuiDefines.DEF_STATE_OFF)
QVipGUI.method_ActionGui(GuiDefines.ID_ACTION_CONNECT)
QVipGUI.method_ActionGui(GuiDefines.ID_ACTION_GETPORT) // <!>
var i = 0;
while(++i < 1000000){};
QVipGUI.method_ActionGui(GuiDefines.ID_ACTION_GETCONF);
}
else {
QVipGUI.method_ActionGui(GuiDefines.ID_ACTION_DISCONNECT)
}
}
}
}
eremite88 28.12.2015 08:29 # 0
Antervis 28.12.2015 11:32 # 0
Elvenfighter 28.12.2015 14:51 # +1
Antervis 28.12.2015 14:59 # +3
bormand 28.12.2015 18:17 # +3
Antervis 29.12.2015 06:26 # 0
eremite88 29.12.2015 07:39 # 0
мы использовали очередь, что-то вроде этого QQueue<QQueue<Task>> m_queue;
Это как видится очередь очередей, т.е. у каждой задачи направленной ядру сграфического интерфейса есть свои задачи в ядре...
И есть лист для хранения переменных состояния выполнения для каждой задачи, при том что переменная присваивается указателю в каждом объекте Task чтобы подзадачи были связаны одной переменной в памяти, а проблема заключалась в том что мы использовали для хранения данных не QList а QVector, и присваивая адрес указателю через & теряли данные впоследствии, т.к последующие данные смещались вначало по адресации, а в последних задачах в объектах Task в по переменной-указателю state хранился уже мусор, и тогда программа выходила в исключение, но почему задержка помогала до сих пор не пойму))
eremite88 29.12.2015 07:49 # 0