Как сказал Джо, журнал создается при запуске транзакции, а SQLlite создает его при запуске оператора.
Чтобы очистить этот журнал и убедиться, что заявление было передано для использования БД:
sqlite3_finalize(insertStmt);
До вашего закрытия.
Файл .journal исчезнет, и все ваши данные будут в безопасности в вашей БД.
Надеюсь, это поможет.
Крис.
Вы можете создать новый поток и использовать диспетчер для отправки, который принимает различные приоритеты .
Приоритеты немного ориентированы на пользовательский интерфейс, но это не имеет особого значения.
Не стоит связываться с приоритетом обычного ThreadPool
, поскольку вы не единственный потребитель. Я полагаю, что логическим подходом было бы написать свой собственный - возможно, такой же простой, как очередь производителя / потребителя, используя свой собственный поток
(и) в качестве потребителя (ов) - установив приоритет потока самостоятельно.
.NET 4.0 включает новые библиотеки (TPL и т. Д.), Чтобы упростить все это - до тех пор вам понадобится дополнительный код для создания настраиваемого пула потоков или рабочей очереди.
Когда вы используете сборку в ThreadPool, все потоки выполняются с приоритетом по умолчанию. Если вы измените этот параметр, он будет проигнорирован. Это тот случай, когда вы должны свернуть свой собственный ThreadPool. Несколько лет назад я расширил SmartThreadPool , чтобы удовлетворить свои потребности. Это может удовлетворить и вас.
Я бы создал общую очередь ожидающих объектов задач, в которой каждый объект указывал бы свой приоритет. Затем напишите поток диспетчера, который следит за Очередью и запускает новый поток для каждой задачи, вплоть до некоторого максимального ограничения потока, и указывает приоритет потока при его создании. Для этого требуется лишь небольшой объем работы, и вы можете настроить отчет диспетчера и даже динамически регулировать количество запущенных потоков. Эта концепция мне очень понравилась, и ее можно обернуть в службу Windows для загрузки, если вы сделаете свою очередь таблицей базы данных.