解决方案 »

  1.   

    在button2的click事件第一行加上
    Thread.Sleep(1500)
      

  2.   

    哦,应该是
    Thread.Sleep(9500)
      

  3.   

    button1.PerformClick()
    不要胡乱用这种用法
    不敢把按钮事件里的代码封装成函数,哪里想调用就调函数吗
    不要直接去调用事件
      

  4.   

    另外,已经使用了timer,又用线程,到底是想要闹哪样
    就不能用正规的编程思路解决问题,非要自己弄个奇葩的"执行顺序"吗
      

  5.   

    你可以定义一个自己的控制Session类型public class TaskSession
    {
        public DateTime 开始时间;
        public Action 程序;
    }然后定义一个集合用于保存所有任务public static List<TaskSession> tasks = new List<TaskSession>();然后可以使用“定时器”——每帧500毫秒——来执行这些任务,执行完毕就从tasks中删除掉。执行具体的某个任务时可以临时使用子线程。不要滥用定时器,更不应该滥用线程,更更不能在线程中乱写 Sleep。
      

  6.   

    你可以随便找一本真正的描述多任务、大系统开发的入门书,例如一个真正的游戏框架设计的书,你会发现,他们基本上都会首先强调“系统全局的定时驱动”,不会告诉你成百上千的活物各自搞什么定时器、甚至坑爹的“子线程+Sleep”的。如果不了解这个原则,就不要考虑设计一个正规产品了,就算是开发只有20分之一规模的程序也不能乱设计。
      

  7.   

    最好在执行的方法中加上锁保证方法的独占性,这样才能btn1和btn2交替执行