Wait some seconds without blocking UI execution
I think what you are after is Task.Delay. This doesn’t block the thread like Sleep does and it means you can do this using a single thread using the async programming model. async Task PutTaskDelay() { await Task.Delay(5000); } private async void btnTaskDelay_Click(object sender, EventArgs e) { await PutTaskDelay(); MessageBox.Show(“I am back”); }