窗体展示
开始后展示
结束摇色展示
代码
导入的命名空间
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;
初始化私有变量
private string[] red = { "01","02","03","04","05","06", "07","08","09","10","11","12","13","14","15","16","17"}; private string[] blue = {"01","02","03","04","05","06", "07","08","09","10" }; private bool begin = true;
页面初始化
private void form1_load(object sender, eventargs e) { foreach(var item in groupbox1.controls) { if(item is label) { ((label)item).text = "00"; } } button2.enabled = false; }
开始按钮
private void button1_click(object sender, eventargs e) { button1.text = "已经开始"; button1.enabled = false; button2.enabled = true; begin = true; taskfactory f = new taskfactory(); list<task> list = new list<task>(); foreach(var item in groupbox1.controls) { if(item is label) { ((label)item).text = "00"; } } foreach( var item in groupbox1.controls) { if(item is label) { label lbl = item as label; list.add(f.startnew(() => { random r = new random(); while (begin) { string txt = ""; if (lbl.name.contains("red")) { lock (obj) { txt = red[r.next(0, 17)]; update(lbl, txt); } } else { txt = blue[r.next(0, 10)]; update(lbl, txt); } thread.sleep(10); } })); } } f.continuewhenall(list.toarray(), tlist => this.showresult()); }
数字更新
private void update(label label , string text) { this.invoke(new action(() => { label.text = text; })); }
结束按钮
private void button2_click(object sender, eventargs e) { button1.text = "开始"; button1.enabled = true; button2.enabled = false; begin = false; }
结果显示
private void showresult() { stringbuilder s = new stringbuilder(); s.append(lblred1.text + " "); s.append(lblred2.text + " "); s.append(lblred3.text + " "); s.append(lblred4.text + " "); s.append(lblred5.text + " "); s.append(lblred6.text + " \n"); s.append($"bluebob: {lblblue.text}"); messagebox.show(s.tostring()); }