Partager via


CheckDiskRequest.CheckDiskAsync Method ()

 

Asynchronously sends the request for check disk to be run.

Namespace:   Microsoft.WindowsServerSolutions.Storage
Assembly:  StorageOM (in StorageOM.dll)

Syntax

public void CheckDiskAsync()
public:
void CheckDiskAsync()
Public Sub CheckDiskAsync

Examples

The following code example shows how to asynchronously request the check disk operation to be run:

try
{
   StorageManager storageManager = new StorageManager();
   storageManager.Connect();
}
catch (StorageObjectModelException stoEx)
{
   //Handle exception
}

DiskSet diskSet = storageManager.DefaultDiskSet;
Boolean scanOnly = true;

if (diskSet == null)
{
   Console.WriteLine("A default diskset was not found");
}
else
{
   Volume volumeToCheck = diskSet.Volumes.FirstOrDefault();
   if (volumeToCheck == null)
   {
      Console.WriteLine("Volume was not found");
   }
   else
   {
      CheckDiskRequest checkDiskRequest = 
         volumeToCheck.GetCheckDiskRequest(scanOnly);
      try
      { 
          checkDiskRequest.PropertyChanged += checkDiskRequest_PropertyChanged;
          checkDiskRequest.Progress.PropertyChanged += Progress_PropertyChanged;
         checkDiskRequest.CheckDiskAsync();
      }
      catch (StorageObjectModelException stoEx)
      {
         Console.WriteLine("Exception: {0}. Error Code: {1}", 
            stoEx.Message, stoEx.ErrorCode);
      }
   }
}

The following code example shows the request delegate method:

private void checkDiskRequest_PropertyChanged(
   object obj, PropertyChangedEventArgs args)
{
   CheckDiskRequest checkDiskRequest = (CheckDiskRequest)obj;
   if(checkDiskRequest.Status == OperationStatus.Succeeded)
   {
      Console.WriteLine("Output Log: {0}", checkDiskRequest.OutputLog);
      Console.WriteLine("Operation result: {0}", checkDiskRequest.Result);
   }
   else if (checkDiskRequest.Status == OperationStatus.Failed)
   {
      Console.WriteLine("Request failed: {0}. Error Code: {1}", 
         checkDiskRequest.ErrorMessage, 
         checkDiskRequest.ErrorCode);
   }
}

The following code example shows the progress delegate method:

private void Progress_PropertyChanged(
   object obj, PropertyChangedEventArgs args)
{
   CheckDiskStepStatus checkDiskProgress = (CheckDiskStepStatus)obj;
   Console.WriteLine("Progress Stage = {0}, Percent Complete = {1}", 
      checkDiskProgress.Step, checkDiskProgress.PercentComplete);
}

See Also

CheckDiskRequest Class
Microsoft.WindowsServerSolutions.Storage Namespace

Return to top