Ошибка ввода-вывода диска после ожидания USB
Я получаю исключение с моим соединением SQLite.
Message: disk I/O error
StackTrace: at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
Source: System.Data.SQLite
Это происходит с этим сценарием.
- Я запускаю приложение
- Я нажимаю кнопку, которая выполняет функцию
- Я ничего не делаю в течение 30 минут
- Я нажимаю кнопку еще раз для выполнения функции
- Исключение!
Вопрос почему?
Флешка с базой данных переходит в режим ожидания через несколько минут? Режим ожидания для жестких дисков устанавливается до 10 минут от аккумулятора и до 20 минут от источника питания. Диспетчер устройств Windows говорит, что при желании Windows можно перейти в режим энергосбережения.
Но почему тогда функция SQLite3.Reset не работает?
И есть ли решение для исправления?
Вот функция, которую я выполняю с интервалом 30 минут.
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
using (var command = new SQLiteCommand(sqlQuery, connection))
{
using (var reader = command.ExecuteReader())
{
// Do something
}
}
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
return returnList;