使用WinAPI从不同线程读/写同一文件

使用WinAPI从不同线程读/写同一文件,winapi,Winapi,我想从一个线程中打开一个文件进行写入,同时打开同一个文件 在使用Win API的另一个线程的读取模式下。如何在没有任何阻塞场景的情况下实现(意味着任何正在进行读取操作的写入操作都不应阻塞)当您同时在同一点读取和写入时,您希望发生什么。您是否关心读取的值。只需打开同一文件的两个句柄,一个用于写入,一个用于读取。只要确保他们彼此拥有兼容的共享权限即可。它们不会互相阻塞。@RemyLebeau-在这里,我们甚至可以使用一个文件句柄以异步模式打开。不需要两个-仅当这在具体任务中易于使用时,不要使用一个句

我想从一个线程中打开一个文件进行写入,同时打开同一个文件
在使用Win API的另一个线程的读取模式下。如何在没有任何阻塞场景的情况下实现(意味着任何正在进行读取操作的写入操作都不应阻塞)

当您同时在同一点读取和写入时,您希望发生什么。您是否关心读取的值。只需打开同一文件的两个句柄,一个用于写入,一个用于读取。只要确保他们彼此拥有兼容的共享权限即可。它们不会互相阻塞。@RemyLebeau-在这里,我们甚至可以使用一个文件句柄以异步模式打开。不需要两个-仅当这在具体任务中易于使用时,不要使用一个句柄。每个句柄只有一个位置指针可用。读取和写入会更改句柄在文件中的位置。您不想为了满足每个单独的读写操作而不断地来回寻找位置。这对您来说是更多的工作,对文件系统来说也是更多的工作。只需使用两个句柄,它们就不会干扰彼此的位置。@Remy Lebeau:我尝试了两个句柄。一个用于写入,一个用于读取。但第二次尝试打开同一文件进行读取时失败了。如果同时在同一点读写,您希望发生什么。您是否关心读取的值。只需打开同一文件的两个句柄,一个用于写入,一个用于读取。只要确保他们彼此拥有兼容的共享权限即可。它们不会互相阻塞。@RemyLebeau-在这里,我们甚至可以使用一个文件句柄以异步模式打开。不需要两个-仅当这在具体任务中易于使用时,不要使用一个句柄。每个句柄只有一个位置指针可用。读取和写入会更改句柄在文件中的位置。您不想为了满足每个单独的读写操作而不断地来回寻找位置。这对您来说是更多的工作,对文件系统来说也是更多的工作。只需使用两个句柄,它们就不会干扰彼此的位置。@Remy Lebeau:我试过使用两个句柄。一个用于写入,一个用于读取。但第二次尝试打开同一个文件进行读取时失败了。