Execute not blocking async shell command in C#
Execute a shell command in async in C# while not blocking the UI thread.
private async Task executeCopyCommand()
{
await Task.Run(() =>
{
var processStartInfo = new ProcessStartInfo("cmd", "/c dir")
{
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = new Process
{
StartInfo = processStartInfo
};
process.Start();
process.WaitForExit();
});
}
Make sure that async
is present in the function definition and await
is used
in the method that calls executeCopyCommand()
.
private async void button_Click(object sender, EventArgs e)
{
await executeCopyCommand();
}