写了个抽奖的小程序,生成多个picbox来滚动图片来实现抽奖。 现在又个问题:我是开了一个线程来随机变换picbox里的照片,声明了一个全局的List来记录选中的图片名,在我的电脑上测试是完全没有问题的,但到了别人的电脑上结果总是不正确,主要是添加进全局List里的结果好像总是不全。 我想是由于他的电脑比较老处理不过来的问题,请问大仙们怎么来处理这个问题?

解决方案 »

  1.   

    记录时当然不能滚动啦。这可以在两个地方分别简单地写lock来实现互斥。
      

  2.   

    全部放进 ImageList   变革鸟
      

  3.   

    比如说(仅仅举例),你的滚动可能是loop
    {
         lock(this)
         {
              滚动
         }
         Sleep(1);
    }         而你点抽奖按钮时执行lock(this)
    {
        读取开奖号;
    }产生奖号和开奖它们一定是互斥的。
      

  4.   

    这个说法的思路不对。此线程应该就仅仅是产生新的奖号,而显示pixbox其实还是使用picbox.BeginInvoke在主线程中来变换照片的。
      

  5.   

    复杂?除非你没有写过多线程、总是并发执行的代码,否则最起码地要考虑这个最笨的lock语句吧。
      

  6.   


    多些sp1234的解答,自己对winform还不是很懂