應用程序中有多個地方在同一個文件上調用XmlWriter.Create,它們都通過以下函數訪問。當另一個人正在寫程序時調用,我得到一個IOException。什麼是鎖定或同步訪問的最佳方式?什麼是同步XmlWriter訪問文件以防止IOExceptions的最佳方式?
這裏是一個的正在使用的功能:
public void SaveToDisk()
{
try
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(SaveFileAbsolutePath, settings))
{
XamlWriter.Save(this, writer);
writer.Close();
}
}
catch (Exception ex)
{
// Log the error
System.Diagnostics.Debug.WriteLine(ex.Message);
// Rethrow so we know about the error
throw;
}
}
更新:它看起來像這個問題不只是從調用該函數,而是因爲另一個線程讀取該文件,而這個功能是寫爲。什麼是最好的鎖定方式,所以我們不會在讀取文件時寫入文件?