How can I use async to increase WinForms performance?

Yes, you’re still doing all the work on the UI thread. Using async isn’t going to automatically offload the work onto different threads. You could do this though: private async void button2_Click(object sender, EventArgs e) { string file = files[0]; Task<string> task = Task.Run(() => ProcessFile(file)); rtTextArea.Text = await task; } private string ProcessFile(string file) … Read more