Add async task for starting a process

This commit is contained in:
2014-11-04 19:24:52 -05:00
parent 8ccf0f9728
commit 5c78e979ff
2 changed files with 34 additions and 0 deletions

View File

@@ -145,6 +145,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="DateTimeExtensions.cs" /> <Compile Include="DateTimeExtensions.cs" />
<Compile Include="IO\ProcessAsync.cs" />
<Compile Include="Security.cs" /> <Compile Include="Security.cs" />
<Compile Include="Trace\BeginEndTracer.cs" /> <Compile Include="Trace\BeginEndTracer.cs" />
<Compile Include="Extensions\Extensions.cs" /> <Compile Include="Extensions\Extensions.cs" />

33
IO/ProcessAsync.cs Normal file
View File

@@ -0,0 +1,33 @@
using System.Diagnostics;
using System.Threading.Tasks;
namespace Common.IO
{
public class ProcessAsync
{
public static Task RunProcessAsync(string fileName, string arguments)
{
var taskCompletionSource = new TaskCompletionSource<bool>();
var process = new Process
{
StartInfo =
{
FileName = fileName,
Arguments = arguments
},
EnableRaisingEvents = true
};
process.Exited += (sender, args) =>
{
taskCompletionSource.SetResult(true);
process.Dispose();
};
process.Start();
return taskCompletionSource.Task;
}
}
}