Ich habe eine Multithread-Anwendung, die mit einer statischen Methode in eine XML-Einstellungsdatei schreibt. Ich möchte verhindern, dass die Datei zweimal zur gleichen Zeit aktualisiert wird (verursacht Zugriff/Schreib-Ausnahme).Lock() in einer statischen Methode
Wie mache ich das?
arbeitet Dies gilt nicht:
namespace Program
{
public class Settings
{
private static void SetSettingsValue (string settings, string value)
{
// make this thread safe to avoid writing to a locked settings xml file
lock (typeof(Settings))
{
//write data to xml file
}
}
}
}
Verfügen Sie über Ihre XML-Datei korrekt (d. H. Über 'using')? Kannst du mehr Code teilen? Auch bei statischen Methoden sollten Sie sich auf private statische Objekte, nicht auf einen Typ, festlegen. Siehe http://msdn.microsoft.com/en-us/library/c5kekcz.aspx –