四级认证一定会做错的题目
- 您所在的用户组无法下载或查看附件
本文由按键学院提供技术支持
关于ExitScript和EndScript的描述错误的是?
A: EndScript可以退出当前线程 B: EndScript可以退出所有线程 C: ExitScript可以退出当前线程 D: ExitScript可以退出所有线程 |
|
>>困惑
ExitScript?少接触多线程的童鞋,可能还没有使用过它。
而 EndScript ,童鞋们一定觉得它比ExitScript亲切。在编写脚本的过程中,时常用到它。
在普遍童鞋的记忆中,EndScript就是一条用来结束脚本运行的命令。
实际上是不是这样呢?
>>解析 实际上不是这样的。
EndScript 的作用是 结束当前线程。 脚本启动的时候,会创建一条默认的线程,也就是我们说的主脚本/主线程。
在主线程中启动的线程称为子线程。主线程和子线程都是线程。
而 EndScript 的作用就是结束当前使用了它的线程。
如果在主脚本中使用 EndScript 则停止主脚本,其它的子线程仍然在继续运行。
如果在子线程中使用EndScript 则停止子线程,主脚本和其它的子线程仍然在继续运行。 主线程中使用EndScript 的例子:
- BeginThread 线程 //启动线程
- Do
- TracePrint "主脚本还在执行"
- EndScript
- Delay 1000
- Loop
- Sub 线程
- Do
- TracePrint "线程还在执行"
- Delay 1000
- Loop
- End Sub
复制代码 分析: 第1步: [backcolor=rgb(247, 247, 247)]BeginThread 线程
启动线程。 第2步: 进入Do 循环,循环第一次输出"主脚本还在执行"。 第3步: 紧接着执行
[backcolor=rgb(247, 247, 247)]EndScript 退出当前线程,也就是主线程。 第4步: 主线程结束了,第1步启动的线程还在继续执行,循环输出“线程还在执行”
执行结果:- 您所在的用户组无法下载或查看附件
子线程中使用EndScript 的例子: - BeginThread 线程1//启动线程1
- BeginThread 线程2 //启动线程2
- Do
- TracePrint "主脚本还在执行"
- Delay 1000
- Loop
- Sub 线程1
- Do
- TracePrint "线程1还在执行"
- EndScript
- Delay 1000
- Loop
- End Sub
- Sub 线程2
- Do
- TracePrint "线程2还在执行"
- Delay 1000
- Loop
- End Sub
复制代码 分析:
1: [backcolor=rgb(247, 247, 247)]BeginThread 线程1 启动线程1。[backcolor=rgb(247, 247, 247)]BeginThread 线程2 启动线程2
2:进入主脚本的Do 循环,循环输出"主脚本还在执行"。
3: 线程1中输出一次“线程1还在执行”之后,使用 [backcolor=rgb(247, 247, 247)]EndScript 结束当前线程。
4: 线程1结束了,而线程2和主脚本都还在继续执行。
执行结果:- 您所在的用户组无法下载或查看附件
ExitScript 就不像EndScript那么温柔好说话,不管哪个线程里执行了它,它不仅会把执行它的线程结束掉,还会顺便把其它的线程都结束掉,相当于按下了脚本的中止热键。- 您所在的用户组无法下载或查看附件
看完之后,大家是不是对 ExitScript和EndScript 有了新的认识? 本文由按键学院提供技术支持
━═━═━━═━═━━═━═━◥◤━═━═━━═━═━━═━═━
有钱,就是任性!按键学院的导师就是土豪!
按键学院实战班