У меня есть следующий код:FileSystemWatcher с замком на событиях
private void WatchFileForChanges()
{
if (fileInfo.Directory != null)
{
_watcher = new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name);
_watcher.NotifyFilter = NotifyFilters.LastWrite;
_watcher.Changed += OnFinalBuilderStatusChanged;
_watcher.EnableRaisingEvents = true;
}
}
private void OnChanged(object source, FileSystemEventArgs e)
{
lock (this)
{
// here i see 2 different threads coexist
// even there is a lock!!
DispatchResult();
}
}
как можно петь в комментариях, я вижу в разные потоки сосуществовать в OnChanged даже есть механизм блокировки, Как так??
Вы понимаете последствия ['lock'ing on' this'] (http://stackoverflow.com/questions/251391/why-is-lockthis-bad)? –
спасибо за ваш ответ, но все же, почему 2 потока прошли через замок? – user829174
@ user829174 Два потока могут проходить через замок, но не в то же время ... Это все блокировка. –