首页 新闻 会员 周边

c#牛人请进...

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-21 21:36

怎样用多线程实现一个窗口开票问题。。。全部有二十人。。卖完为止。。人必须排队等候。。售票窗口开始卖票才能买票。。一次只能卖给一个人。。

彬彬@科比的主页 彬彬@科比 | 初学一级 | 园豆:43
提问于:2013-01-11 22:23
< >
分享
最佳答案
0
     public class A
{
private int ticket;
        public int Ticket
        {
            get
            {
                lock (ticket.ToString())
                    return ticket;
            }
            set
            {
                lock (ticket.ToString())
                    ticket = value;
            }
        }
}

  A a=new A();
   private void Test()
        {
            while (a.Ticket> 0)
            {

                MessageBox.Show(a.Ticket.ToString());
                    a.Ticket--;
                
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            

            new Thread(new ThreadStart(Test)).Start();
            new Thread(new ThreadStart(Test)).Start();
        }    
收获园豆:5
百零八1900 | 菜鸟二级 |园豆:229 | 2013-01-15 09:57
其他回答(3)
1

把问题描述清楚好不好

朝曦 | 园豆:1073 (小虾三级) | 2013-01-12 08:14
0

同意楼上

W宁宁 | 园豆:522 (小虾三级) | 2013-01-12 10:09
0

提供一个思路:

1、一个辅助线程专门处理排队  (注意队列要保持线程安全即,插入,删除等等要lock)

2、一个System.Threading.timer定时检查是否有票,有票就循环排队队列给票

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-01-12 12:47

贴一个出来看看

支持(0) 反对(0) 彬彬@科比 | 园豆:43 (初学一级) | 2013-01-12 15:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册