Исключение FileSystemWatcher и System Out of Memory - PullRequest
0 голосов
/ 28 декабря 2010

Немного контекста

Есть приложение на основе wpf, которое я оставил открытым в течение 2-3 дней, не выполняя никаких действий, исключая память, это очень странная ситуация и не случается всевремени.Во время этого идеального действия мое приложение не выполняет никаких действий, а только наблюдатель файловой системы, постоянно наблюдающий за общим местоположением, поэтому я подумал, что это будет проблемой, но я не уверен.Любое предложение всегда приветствуется.

Ответы [ 2 ]

1 голос
/ 28 декабря 2010

windbg (отладчик из средств отладки для Windows, включенный в Windows SDK. Сам в настоящее время включенный в VS) включает команду для вывода статистики в управляемую кучу. В том числе какие типы выделяются. Это должно помочь определить, какие объекты не собираются (вероятно, с помощью некоторой ссылки, которая должна быть очищена).

Это должно помочь вам начать: http://blogs.msdn.com/b/tess/archive/2005/11/25/496973.aspx

1 голос
/ 28 декабря 2010

Вы добавляете что-то в список \ коллекцию, когда происходит событие FileSystemWatcher? Вы можете делать это прямо, или, скорее, косвенно, если это неочевидно.

Это может в конечном итоге привести к ООМ и будет зависеть от того, сколько событий произошло, поэтому время, необходимое для достижения ООМ, может сильно варьироваться.

FileSystemWatcher сам по себе не приведет к OOM. Он поддерживает внутренний буфер , но он будет перезаписывать буфер, если данные событий файловой системы не будут получены через события FSW достаточно быстро.

Так что нет, FileSystemWatcher сам по себе не приведет к OOM - механизм внутреннего буфера исключает эту возможность специально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...