如何在不阻塞窗口的情况下打开文件?
答
不幸的是,CreateFile
是同步的。如果你需要它是非阻塞的,你可能试图在UI线程中做I/O操作。避免这种情况。
您没有提及编程语言,所以我会认为它是C++。您可以使用the standard library's threading facilities将I/O密集型工作卸载到工作线程中。例如,您可以将其包装在packaged_task或async中。
+0
我知道我可以使用工作线程,它目前是我正在实施的解决方案。我想知道是否可以纯粹使用异步和非阻塞IO。我正在尝试优化传输大量文件的作业。该语言是python,但我很自在地使用python的低级窗口API调用。 – Maxaon3000
+0
没有可用的'CreateFile()'的异步/非阻塞版本。像doug说的那样,'CreateFile()'本身只是同步的。 –
StorageFolder :: CreateFileAsync()是winapi ++。没有什么非常神秘的,它只是在一个线程池线程上运行。当然你也可以这样做。 –
'StorageFolder'仅适用于Windows应用商店应用,不适用于标准Win32应用。 –
@Remy这就是为什么Hans建议使用线程池。 –