private void DiskChartUpdater_DoWork(object sender, DoWorkEventArgs e)
 {
     if (!(sender is BackgroundWorker owner))
     {
         return;
     }
     foreach (var drive in DriveInfo.GetDrives())
     {
         if (!PathEx.LocalDir.StartsWithEx(drive.Name))
         {
             continue;
         }
         var free = drive.TotalFreeSpace;
         owner.ReportProgress(0, free);
         owner.ReportProgress(25, drive.TotalSize - free);
         var apps  = DirectoryEx.GetSize(PathEx.LocalDir);
         var other = drive.TotalSize - free - apps;
         owner.ReportProgress(0, free);
         owner.ReportProgress(50, apps);
         owner.ReportProgress(100, other);
         break;
     }
 }