| 12345678910111213141516171819202122232425262728 | 
							- using System;
 
- using System.Diagnostics;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- namespace MediaBrowser.Common.Extensions
 
- {
 
-     /// <summary>
 
-     /// Extension methods for <see cref="Process"/>.
 
-     /// </summary>
 
-     public static class ProcessExtensions
 
-     {
 
-         /// <summary>
 
-         /// Asynchronously wait for the process to exit.
 
-         /// </summary>
 
-         /// <param name="process">The process to wait for.</param>
 
-         /// <param name="timeout">The duration to wait before cancelling waiting for the task.</param>
 
-         /// <returns>A task that will complete when the process has exited, cancellation has been requested, or an error occurs.</returns>
 
-         /// <exception cref="OperationCanceledException">The timeout ended.</exception>
 
-         public static async Task WaitForExitAsync(this Process process, TimeSpan timeout)
 
-         {
 
-             using (var cancelTokenSource = new CancellationTokenSource(timeout))
 
-             {
 
-                 await process.WaitForExitAsync(cancelTokenSource.Token).ConfigureAwait(false);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |