如何在C#中执行fsync()?

时间:2011-02-07 10:30:18

标签: c# .net

我正在开发一个与C#中的数据库相关的项目。在每次事务提交之后,我希望db将所有缓冲的数据移动到磁盘上。在Linux中,fflush()+ fsync()会提供我想要的东西。为了获得相同的效果,我应该在C#中做什么?

2 个答案:

答案 0 :(得分:7)

与C'fflush()对应的方法是FileStream classFlush()

无论如何,这与文件有关,而与数据库无关。

修改
如果您的目标是4.0 .NET Framework,那么有一个new overload接受一个布尔值。根据其描述:

Flush(bool flushToDisk)
  

flushToDisk
  类型:System.Boolean
  如果刷新所有中间文件缓冲区为true;否则,错误。

你应该通过true调用它。

答案 1 :(得分:3)

通常,在使用SQL Server之类的东西时,当数据库将数据写入磁盘时,您无法控制

您应该担心的是确保您的交易commit成功。

您使用的是哪个数据库服务器?