Словил очень интересный глюк, пока тестировал sql метки. В то время, как под отладчиком работал один экземпляр программы и показывал метки (без каких-либо проблем), я для теста, решил запустить вторую копию и попробовать что-нибудь сделать с метками. Вторая копия запустилась, метки показала. Когда я попробовал поставить новую метку, оно ругнулось на транзакцию, но метку поставило. Это вобщем, не суть важно - про многопользовательскую работу я пока вообще не думал, что там будет. Интересно, что произошло с первой копией программы. Во-первых, все запросы в базу (даже на чтение) получают отлуп от SQLite с сообщением, что база заблокирована, т.е. взять оттуда ничего невозможно. НО на экране метки каким-то чудом отображаются! Не все, а какая-то область закэшировалась (целиком) и не реагирует на кнопку Вкл/Выкл меток.
Не удержался и даже записал видео:
https://yadi.sk/i/RVVBfS9UhSb98Частично работает опция Информация о метке: в базу прилетает запрос, обламывается, но окошко с информацией появляется и в сводной информации всё заполнено: площадь, количество частей и проч. Не отображается только описание метки.
После того как закрыл ту вторую копию, в менеджере меток всё заработало и в базу запросы стали проходить. Заработала и информация о метке. Но вот отображение так и продолжает тупить. Причём, в базу даже запросов не приходит про Rect, что самое странное.
У меня вопрос - где оно кэшируется и как долго тот кэш живёт? Есть подозрение, что в том кэше в итоге оказывается вся база меток, потому как я наблюдаю возрастание потребления памяти после старта программы и активной прогрузки меток. После старта с отключёнными метками - 80 Мб, после прогрузки - 450 Мб (вся база 190 Мб в sqlite).