• Flash actionscript3.0 多个setTimeout之间会顺序执行 单线程执行 无法中止


    做了一个试验,测试能否在另外的setTimeout中中断其他代码的执行。结果表明,是不可能的,Actionscript会按顺序,逐个逐个的执行。

    private var index:int;
    private var stop:Boolean = false;
    
    public function EffectTest()
    {
           setTimeout(run, 200);
           setTimeout( function():void
           {
                   trace("try to terminate running");
                  stop = true;
           }, 500);
           setTimeout( function():void
           {
                   trace("index is", index);
           }, 600);
    }
    
    protected function run(): void
    {
            //this loop needs 1.3s to finish
            for (var i:int = 0; i < 10000000; i++)
           {
                   if (stop)
                  {
                         index = i;
                          trace("running has been terminated");
                          return;
                  }
                   var a:Number = Math.sqrt(i);
           }
           index = i;
            trace("finish running");
    }



    如果第二个setTimeout能中止的话,应该输出running has been terminated

    但实际运行结果,这部分是没有执行的。run函数还是好好的完全被执行完。
    最终输出:
    finish running
    try to terminate running
    index is 10000000
  • 相关阅读:
    mysql无法导出表内容
    mysql回收用户权限
    mysql跳过授权表进入服务
    数组forEach函数
    数组的filter函数
    无符号右移运算
    按位非运算符
    TP5页面跳转与重定向
    thinkphp5 $this->fetch()
    linux下vi命令修改文件及保存的使用方法
  • 原文地址:https://www.cnblogs.com/kenkofox/p/3197862.html
Copyright © 2020-2023  润新知