在一个Do Loop语句中循环执行一些操作,中文描述如下:do
    1、在窗体顶部播放Flash动画(每次循环播放的动画不固定,动画文件在当前目录下)
    2、随机生成工作数据    
    3、sleep(45000) //休眠45秒   
    4、打开另一窗体15秒 //ShowDialog()
    5、根据第2步生成的数据,在窗体的底部绘制图形
    6、将第2步生成的数据保存到数据库loop while(IsRun)我想用两个线程分别执行第1步和第5步,但发现加入线程后还没有无线程时执行的流畅,请教各位大虾该怎么实现,或者实现的思路。
还有:第1步不影响第2步的执行,第6步必须在第5步完成的情况下才可以执行。
      每个循环大概需要100秒,整个Do Loop执行时间会很长,可能执行一天。

解决方案 »

  1.   

    你把这个循环放到线程中去执行。那么对于操纵UI,可以采用BeginInvoke或者Invoke来完成,参看
    http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
      

  2.   

    控件BackgroundWorker好用!
    在第5步的backgroundWorker的RunWorkerCompleted事件里执行第6步!
      

  3.   

    To:Knight94(愚翁) 
        你是说只用一个线程去执行Do Loop 循环吗?我想在执行其他操作的时候,Flash 是处于运行状态的。我最早也是这么做的,但是给窗体传送内容时不好控制就改成现在的这种方式。还有,在循环中使用线程会不会每次循环都生成一个新的线程?
      

  4.   

    to 我最早也是这么做的,但是给窗体传送内容时不好控制就改成现在的这种方式。直接操纵UI是不可以的,需要用到invoke或者begininvoke方法,参看上面文章给的例子。