From 0cb6a5c81271a61e930505f3315b1d67bdf22724 Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Sun, 16 Jul 2023 22:46:06 +0200 Subject: Renamed all the notes files to include date --- .../2023-05-22-non-blocking-shell-exec-csharp.md | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 content/notes/2023-05-22-non-blocking-shell-exec-csharp.md (limited to 'content/notes/2023-05-22-non-blocking-shell-exec-csharp.md') diff --git a/content/notes/2023-05-22-non-blocking-shell-exec-csharp.md b/content/notes/2023-05-22-non-blocking-shell-exec-csharp.md new file mode 100644 index 0000000..ffad85c --- /dev/null +++ b/content/notes/2023-05-22-non-blocking-shell-exec-csharp.md @@ -0,0 +1,44 @@ +--- +title: Execute not blocking async shell command in C# +url: non-blocking-shell-exec-csharp.html +date: 2023-05-22T12:00:00+02:00 +type: note +draft: false +tags: [csharp] +--- + +Execute a shell command in async in C# while not blocking the UI thread. + +```c# +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()`. + +```c# +private async void button_Click(object sender, EventArgs e) +{ + await executeCopyCommand(); +} +``` + -- cgit v1.2.3