C# WinForms多线程编程-摇奖程序
2013-07-26 16:36
260 查看
利用多线程模拟一个电脑摇奖程序,如图所示。在点击【滚动号码】,启动线程,对后台的电话号码进行循环显示;点击【开奖】按钮,关闭线程,此时显示在文本框中的电话号码即为中奖号码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace Ex02_Lottery { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //定义一个泛型 List<string> liNum = new List<string>(); //定义一个全局变量 Thread thread; private void btnRoll_Click(object sender, EventArgs e) { //定义一个线程 thread = new Thread(new ThreadStart(Num)); //开启线程 thread.Start(); btnRoll.Enabled = false; } public void Num() { int i = 0; liNum.Add("13965113141"); liNum.Add("18676768761"); liNum.Add("13456468141"); liNum.Add("15456564541"); liNum.Add("13965113141"); liNum.Add("13968766141"); liNum.Add("13965113141"); liNum.Add("13123113311"); //循环 while (i < liNum.Count + 1) { if (i >= liNum.Count) i = 0; txtNum.Text = liNum[i].ToString(); i++; } } private void Form1_Load(object sender, EventArgs e) { txtNum.Enabled = false; //线程间操作无效: 从不是创建控件“ btnRoll”的线程访问它。解决方法 Form1.CheckForIllegalCrossThreadCalls = false; } private void btnLottery_Click(object sender, EventArgs e) { //挂想线程 thread.Suspend(); //恢复线程 thread.Resume(); //关闭线程 thread.Abort(); btnLottery.Enabled = false; MessageBox.Show("号码为:" + txtNum.Text + "恭喜你中奖了", "信息提示"); } } }
相关文章推荐
- WinForms多线程编程之摇奖程序
- VB程序编到最后,基本都是用API了,整个就是SDK编程了
- c# WinForm窗体编程中对窗体程序设置快捷键
- asp.net程序中最常用的三十三种编程代码标签
- Linux编程 - 第一个连接mysql的C程序
- VB程序员的FTP编程指南1.2-使用Windows的ftp程序
- 自己学习编程时间比较短,现在把一下自己以前刚刚接触C++时的程序上传一下,有空可以看看
- 用汇编写的程序 世界编程大赛第一名
- 编程模式如何结束未响应的程序
- Linux多任务编程(六)---编写多进程程序及其代码
- C#数据报编程之测试程序
- RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序
- windows编程--第一个WinMain程序
- Linux网络编程:基于TCP的程序开发(1)
- php摇奖程序
- shell编程之sed编辑器&gawk程序
- [JavaWeb基础] 024.Socket编程之简单的聊天程序
- MFC编程时如何给程序设置热键
- (教训少占鱼)编程之难--难在大片程序中的小细节-注意变量类型和范围
- 网新恒天笔试题,有两个整形数组A和B,请编程去除这两个数组间的交集。若有相同元素,则在相同元素较多的数组中保留它。例如,数组A有三个1,数组B有两个1,程序将删除数组B中的两个1.