mega-art писал(а):Если разделить на модули программу [...]
Да! Именно разделить на модули. Причем отдельные. Например закачку тайлов можно реализовать в виде отдельного приложения -- менеджера закачки тайлов. Его функционал достаточно абстрагирован от механизма показа этих тайлов из кеша. Менеджер должен принимать от визуальной части запросы на закачку секторов. Это можно реализовать несколькими способами сразу: через командную строку, через DDE или COM. Менеджер может висеть в трее и в параллеле качать тайлы даже без визуальной части. То есть через командную строку вызываем менеджер с координатами и зумом сегмента в параметрах, а менеджер находит свою уже запущенную копию, передаёт ей данные о сегменте и отключается.
Естественно появляется возможность качать в разных потоках тайлы из разных источников и разных участков.
Опять же, упрощается визуальная часть и её отладка.
Так же можно делать в виде отдельных утилит модули склейки карт. Вызываться они будут так же через командную строку с параметрами.
Принцип "разделяй и властвуй" во всей красе.=)
Готов попринимать участие и пописать код. Давайте спецификацию.
P.S.
Если выделить ещё и модуль доступа к кешу в виде отдельной DLL, например, то снова получим отдельное и независимое направление развития проекта. Тут можно не добавляя новых глюков и индекс присобачить и расшаренное хранение кеша (просто сделать у этого модуля свои настройки и обращаться к нему как к черному ящику типа: взять тайл, положить тайл, заменить тайл и т.д.). Появляется возможность малыми усилиями сделать что угодно. Например, возможность сказать модулю доступа к кешу, чтобы он хранил подробный кеш городов в отдельных хранилищах, а кеш какихто определённых уровней зумма, например, на FTP.
Давайте, ребят, обдумываем, обсуждаем..