简单有关问题:怎么确保打开的文件没有被其它程序(读)写

简单问题:如何确保打开的文件没有被其它程序(读)写?
场景:程序A不断的向某文件夹写txt文件:1.txt,2.txt,3.txt.....,程序B开一个线程监控该文件夹,有新增文件时对其进行读取,并执行计算。
问题:B检测到新增文件,但A对该文件的写操作还没有进行完,这时B读到的内容可能就不完整。如何在打开文件时判断该文件有没有写完?(或者说是否正被其它程序操作?)需要什么样的等待机制么?还是有更简单的方法?
PS:A无法向B发送任何通知,A只负责不停的往目录中写文件。

请大家不吝赐教。

------解决方案--------------------
如果是新建的文件,file.Close之前大小应该为0
------解决方案--------------------
文件可以用个临时文件名 temp.dat, 等写完了再改个名字   xxx.dat, 另外i的程序读这个文件
很多程序用类似方法
------解决方案--------------------
以独占方式打开文件,如果打开失败,则说明有其它用户打开了该文件
------解决方案--------------------
B以完全独占的方式打开一个文件,如果能打开成功,则说明A已经写完了,A已经结束了对该文件的操作。但一个良好的设计,是让A来通知B,除非A程序不是你写的。