当前位置:编程学习 > C#/ASP.NET >>

有哪位高手能告诉我怎么做个摇奖机

摇奖机的原理和摇奖机的源代码!!!
谢了哦!!! --------------------编程问答-------------------- 就是取随即数 --------------------编程问答-------------------- 自己研究一下,这个很容易 --------------------编程问答-------------------- 主要用到的是 随机数和多线程


--------------------编程问答--------------------

private void button1_Click(object sender, System.EventArgs e)
{
if( this.button1.Text =="暂停" )
{
this.button1.Text="开始";
t1.Suspend();
t2.Suspend();
t3.Suspend();
t4.Suspend();
t5.Suspend();
t6.Suspend();
}
else
{
this.button1.Text="暂停";
t1.Resume();
t2.Resume();
t3.Resume();
t4.Resume();
t5.Resume();
t6.Resume();
}
}
void ChangeTest()
{
while(true)
//总是执行
{
string s = Thread.CurrentThread.Name;
//获得当前线程的名字
switch(s)
{
//根据线程名字,选择不同的方法执行
case "1":
this.label1.Text = random.Next(0,9).ToString();
break;
case "2":
this.label2.Text = random.Next(0,9).ToString();
break;
case "3":
this.label3.Text = random.Next(0,9).ToString();
break;
case "4":
this.label4.Text = random.Next(0,9).ToString();
break;
case "5":
this.label5.Text = random.Next(0,9).ToString();
break;
case "6":
this.label6.Text = random.Next(0,9).ToString();
break;

}
Thread.Sleep(100);//使线程休眠,放弃时间片,降低CPU使用率
}
}

private void Form1_Load(object sender, System.EventArgs e)
{
//窗体加载事件,当窗体加载后,首先执行以下代码
//实例化随机数,并且给初始种子为20(其它也可以)
random = new Random(20);
//实例化线程t1,并且调用ChangeTest方法
t1 = new Thread(new ThreadStart(ChangeTest));
//给线程t1命名为“1”
t1.Name="1";
//启动线程
t1.Start();
t2 = new Thread(new ThreadStart(ChangeTest));
t2.Name="2";
t2.Start();

t3 = new Thread(new ThreadStart(ChangeTest));
t3.Name="3";
t3.Start();

t4 = new Thread(new ThreadStart(ChangeTest));
t4.Name="4";
t4.Start();

t5 = new Thread(new ThreadStart(ChangeTest));
t5.Name="5";
t5.Start();

t6 = new Thread(new ThreadStart(ChangeTest));
t6.Name="6";
t6.Start();


}

private void pictureBox1_DoubleClick(object sender, System.EventArgs e)
{
Application.Exit();

}

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
t1.IsBackground = true;
t1.Abort();
}
catch
{
}
try
{
t2.IsBackground = true;
t2.Abort();
}
catch
{
}
try
{
t3.IsBackground = true;
t3.Abort();
}
catch
{
}
try
{
t4.IsBackground = true;
t4.Abort();
}
catch
{
}
try
{
t5.IsBackground = true;
t5.Abort();
}
catch
{
}
try
{
t6.IsBackground = true;
t6.Abort();
}
catch
{
}
//为什么不用下列代码?
// try
// {
// t1.IsBackground = true;
// t2.IsBackground = true;
// t3.IsBackground = true;
// t4.IsBackground = true;
// t5.IsBackground = true;
// t6.IsBackground = true;
//// 在异常处理语句中结束所用线程
// t1.Abort();
// t2.Abort();
// t3.Abort();
// t4.Abort();
// t5.Abort();
// t6.Abort();
// }
// catch
// {
// }
}
}
}
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,