Использовать транзакции для данной задачи? Мсье знает толк. Правильно, блокируем всё, а мир подождет. Да и для такой задачи использовать InnoDB тоже прекрасное решение, памяти у серверов много, надо занять всю. Вы случайно на каких-нить курсах типа Оракла не учились, эти ребята хорошо так учат, лишь бы побольше лицензий покупали, всё сделают для того, чтобы всё тормозило.
Проблема в неатомарности операций. Вы берете значение из бд, затем апдейтите, в итоге если очень активно стучаться, то одновременно может запустится множество инстансов скрипта, все сначала возьмут значение с бд, предположим 2, а затем это множество (к примеру 15) изменят значения в бд, но при этом в переменной будет у всех 2 и ни один не выключит страницу.
Как минимум первый update и select надо поменять местами.
И, ...., приложение упало. С UI можно работать только из UI треда. А для того чтобы всё не падало есть семейство методов Invoke у базового класса контролов. Invoke с примером
Рисовать по таймеру не есть хорошее решение. Invalidate вызывается уж не так и часто, таймер только организует либо лишний тормоз (в случае если рисовать слишком часто), либо понизит отзывчивость интерфейса (если рисовать слишком редко).
Армянское Радио: Вы не поверите, это даже в .NET нельзя, там сокрыто за компилятором, но в итоге работает именно так как указано в примере. Ну и да, бензиновый авто на дизельном топливе тоже не поедет. И если C++ знает о вызовах C, то вот C даже и не знает, что это за зверь такой C++. И да, это разные языки программирования, и если один даёт совместимость, то другой этого делать не обязан.
Ну тут проблема будет как минимум в стандартной библиотеке. Вы в общем можете собрать с фичами C++11, но со старой рантайм либой, будет работать, но не будут доступны элементы стандартной библиотеки. Вы можете попробовать привести код на использование std::tr1, но тут нет гарантий, что тоже будет всё нормально работать. Использование одновременное нескольких рантаймов, не есть хорошо, падения могут быть где угодно.
Единственное что может спасти, если вы не используете никаких сторонних библиотек на C++, в этом случае вы можете попробовать собрать со статической линковкой стандартной библиотеки.