blob: f8b9c53786e648b76bd28fae791f085d395dc535 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
---
title: Execute not blocking async shell command in C#
permalink: /non-blocking-shell-exec-csharp.html
date: 2023-05-22T12:00:00+02:00
layout: post
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();
}
```
|