考虑这个非常简单的例子:
for(;;){
QFile *file = new QFile("some.txt");//this is where it fails with "device not open" when windows screen is locked
if(file->exists()){
file->open(QFile::ReadOnly);
QString contents = file->readAll();
file->close();
}
file->deleteLater();
QThread::sleep(2);
}
直到最近,当 Windows 屏幕被锁定时,它仍然继续正常工作,但我不确定它是否开始像这样,因为我开始使用 Qt 5.9,或者它是否是 Windows 更新阻止文件访问,而 Windows 屏幕是锁定。
因此,请提供解决方法或解决方案。谢谢你。
编辑:事实证明,QFile 或文件访问不是问题,问题在于它在哪里以及由谁调用。所以我接受@Kuba 的回答,因为它内容丰富且方向正确。