1 private async void buttonStartTask_Click(object sender, EventArgs e)
2 {
3 // 1. 实例化并显示加载窗体(非模态,以便后续操作)
4 LoadingForm loadingForm = new LoadingForm();
5 loadingForm.StartPosition = FormStartPosition.Center; // 居中显示
6 loadingForm.Show(this); // 使用 Show 而非 ShowDialog
7
8 // 2. 使用 Task.Run 将耗时任务放入后台线程执行
9 await Task.Run(() =>
10 {
11 // 这里是你的耗时操作,例如:
12 System.Threading.Thread.Sleep(3000); // 模拟耗时3秒的任务
13 // 查询数据库、处理大量数据、网络请求等...
14 });
15
16 // 3. 任务完成后,关闭加载窗体
17 loadingForm.Close();
18
19 // 4. 后续更新UI或提示用户
20 MessageBox.Show("任务完成!");
21 }