Sto utilizzando C# in Visual Studio 2010 con il framework 4.0.Ogni volta che apro Visual Studio, l'errore EnableRaisingEvent di FileSystemWatcher cambia
Nel mio progetto, in due diverse forme, ci sono due FileSystemWatcher
s con la proprietà EnableRaisingEvent
impostata su false
. Se chiudo Visual Studio, quando lo riaprio ottengo entrambi in FileSystemWatcher
la proprietà EnableRaisingEvent
impostata su true
.
In entrambe le mie forme nel file di progettazione c'è il seguente codice:
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.fileSystemWatcher1 = new System.IO.FileSystemWatcher();
((System.ComponentModel.ISupportInitialize)(this.fileSystemWatcher1)).BeginInit();
this.SuspendLayout();
this.fileSystemWatcher1.Filter = "my_filter";
this.fileSystemWatcher1.NotifyFilter = System.IO.NotifyFilters.LastWrite;
this.fileSystemWatcher1.SynchronizingObject = this;
this.fileSystemWatcher1.Changed += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);
}
La proprietà EnableRaisingEvent
non è impostata, ma il valore predefinito è false
.
Qualche idea del motivo per cui ho questo strano comportamento?
modificare
ho seguito il suggerimento del Virtlink, aggiungendo la seguente riga di codice:
this.fileSystemWatcher1.EnableRaisingEvents = false;
Sembrava di risolvere il mio problema, ma dopo un paio di giorni (e qualche apertura, chiusura e la ricostruzione del progetto, ma senza modificare il fileSystemWatcher1
) ho trovato:
nella finestra di progettazione , Nelle proprietà del
fileSystemWatcher1
,EnableRaisingEvents
è stato fissato di nuovo altrue
nel codice, la linea precedentemente aggiunto mancava
ho provato a spostare a Visual Studio 2012 (ancora Framework 4.0) e la soluzione alternativa risolto il problema per alcuni giorni. Poi ho avuto la stessa situazione di VS10.
Qualche altra idea?
Puoi confermare, hai aggiunto il suggerimento di Virtlink 'this.fileSystemWatcher1.EnableRaisingEvents = false;' nel costruttore del tuo file Form.cs? –
@jacobaloysious ho fatto, e sembra di risolvere il problema! Grazie anche a te – 888