Я создаю FileWatcher, и я добавляю метод watcher_Changed как событие.
По прошествии некоторого времени он вылетает в секции улова как NullReferenceObject (ошибка IIS Express).FileWatcher - NullObjectReference
private static void watcher_Changed(object sender, FileSystemEventArgs e)
{
try
{
fWatcher.EnableRaisingEvents = false;
System.Threading.Thread.Sleep(300);
var newLoc = ReadLines();
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub1>();
//Do something
fWatcher.EnableRaisingEvents = true;
}
catch(Exception err)
{
//Error appears here
fWatcher.EnableRaisingEvents = false;
fWatcher = null;
fWatcher.Dispose();
fWatcher = new FileSystemWatcher();
while (fWatcher.EnableRaisingEvents != true)
{
try
{
fWatcher.EnableRaisingEvents = true;
}
catch(Exception exc)
{
System.Threading.Thread.Sleep(100);
}
}
}
}
Как это исправить?
Вы можете приступить к его исправлению с помощью отладчика, чтобы определить, какой объект имеет значение null. Я предполагаю, что сборщик мусора поет fWatcher после окончания сеанса/срока использования приложения. Вы получаете null в fWatcher, а затем вы вызываете его свойство ... – PTwr
Вы уверены, что инициировали fWatcher? Можете ли вы дать нам полный код? –
MohammadMirMostafa: Да, он инициирован, он отлично работает, но иногда он падает. PTwr: Ну, я должен проверить это. Может быть, это так ... – user3692826