Execute not blocking async shell command in C#

note, May 22, 2023, on Mitja Felicijan's blog

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();
}

Other notes

DateTitle
Parse RSS feeds with Lua
Make B/W SVG charts with matplotlib
Embedding resources into binary with Cc
Grep to Less that maintain colors
Alacritty open links with modifier
Write ISO to USB Key
60's IBM Computers Commercial
Display xterm color palette
Extract lines from a file with sed
Run 9front in Qemuplan9
Simple presentations with Markdown
Write and read structs to/from files in Cc
Change Alt key to Win key under Xfce4
Download list of YouTube files
10/GUI 10 Finger Multitouch User Interface