winfrom 设计如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp7 { public partial class Form1 : Form { private int bt_exe_enabled = 0;// 1 按键2 正在执行任务中,请稍后; 0 按键1 未在执行任务中 public Form1() { InitializeComponent(); } public string makeSomething(string m) { Thread.Sleep(5000);//模拟耗时 m = m+" 制造任务 执行完毕 ******* "; label1.Text += m; bt_exe_enabled = 0; return m; } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false;//屏蔽与UI之间的线程检查 } private void button2_Click(object sender, EventArgs e) { if (bt_exe_enabled == 1) { MessageBox.Show("任务正在执行中,请稍后……"); return; } bt_exe_enabled = 1; label1.Text = "消息:"; try { if (string.IsNullOrEmpty(richTextBox1.Text.Trim())) { MessageBox.Show("请输入需要制造的事物"); return; } bt_exe.Enabled = false; Task<string> task = Task.Run(() => { return makeSomething(richTextBox1.Text.Trim()); }); } catch (Exception) { throw; } finally { bt_exe.Enabled = true; } } } }