Как нужно правильно написать программу для перехвата причины, по которой HDD выходит из сна? Или как написать программу мониторинга чтения файлов на диске D:?
Дополнительные детали:
HDD просыпается по непонятной причине каждые полчаса, и, так как он очень шумный, то меня это раздражает.
я написал программу для мониторинга файлов на диске D:\ c использованием IO.FileSystemWatcher
на C#, однако ничего не работает, так как в Windows 10 отключено изменение атрибутов у файлов для LastAccessed. (FSUtil подтверждает)
Пример кода на WinForm.
this.fileSystemWatcher1.EnableRaisingEvents = true;
this.fileSystemWatcher1.IncludeSubdirectories = true;
this.fileSystemWatcher1.NotifyFilter = ((System.IO.NotifyFilters)((((System.IO.NotifyFilters.FileName | System.IO.NotifyFilters.DirectoryName)
| System.IO.NotifyFilters.LastWrite | NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.Security | NotifyFilters.Size)
| System.IO.NotifyFilters.LastAccess)));
this.fileSystemWatcher1.Path = "D:\\";
this.fileSystemWatcher1.SynchronizingObject = this;
this.fileSystemWatcher1.Changed += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);
this.fileSystemWatcher1.Created += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);
this.fileSystemWatcher1.Deleted += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);
this.fileSystemWatcher1.Renamed += new System.IO.RenamedEventHandler(this.fileSystemWatcher1_Renamed);
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
textBox1.Text += $"{e.FullPath} {e.Name} {e.ChangeType} \n";
}
Изучая паттерн Singleton столкнулся с тем ,что классическая реализация данного паттерна очень хромает в плане потокобезопасности и что Lazy-реализация...