美文网首页按键精灵
「脚本通用模板」app卡屏后,通过多线程“重启”脚本

「脚本通用模板」app卡屏后,通过多线程“重启”脚本

作者: 3分钟学堂郭立员 | 来源:发表于2020-06-03 09:32 被阅读0次

大家好,我是公号3分钟学堂的郭立员,本期讲一下“「脚本通用模板」app卡屏后,通过多线程“重启”脚本”,在文章标题上我给重启两个字加上了引号,因为本期内容讲的并不是直接重启脚本,而是重启多线程中的一个子线程。

在写多线程的时候,我本着一个原则:线程越少越好。这次的话我用了双线程完成想要的功能。

一个主线程和一个子线程:

主线程:循环检测屏幕是否发生变化

子线程:完成脚本要实现的具体功能(脚本干啥用的)

先说一下主线程的思路:

①在屏幕上截取指定区域(范围)的一个截图

②设置你要作为检测卡顿的时间,比如1分钟画面不发生变化,即认为是卡屏了

③通过找图命令在步骤①的范围内找那张截图,如果找到了说明屏幕没变化,也就是卡屏了,反之则认为没有卡屏。

④循环执行上面三步,循环不要太频繁,可以设置多久执行一次。

关于子程序没啥说的,根据自己的脚本内容正常去写就行。

下面根据源码,我们说一下注意的细节。

①启动子线程要赋值给一个变量。

dim h=Thread.Start(主程序)

这个是因为停止子线程的时候,你需要明确的告诉脚本,它要停止哪一个在运行的子线程。

Thread.Stop (h)

②同一个函数,如果执行两次启动子线程命令,会有两个线程同时执行。

Thread.Start(主程序)Thread.Start(主程序)

就比如这样,脚本是会有两个主线程同时运行,通常我们可能会认为一个子线程只能有一个在运行,这是一个误区。

③基于上一点的原因,我们重启子线程要先停止正常运行的子线程,然后在开始启动新的线程。这里面有个细节就是我用同一个变量h来存储子线程启动,这样我在写停止线程的时候,就可以统一写成:

Thread.Stop (h)

④启动子线程的时候代码中,子线程名称后面不能有括号

Thread.Start(主程序)  //正确写法

Thread.Start(主程序())  //错误写法

这种没参数的情况还好说,如果有参数,写法的区别就更加明显了

Thread.Start(主程序(参数1,参数2))  //错误写法

Thread.Start(主程序,参数1,参数2)   //正确写法

⑤关于子线程的写法注意事项,在我的代码中叫“主程序”,可以理解为主要的功能程序,本质上说它是一个自定义的函数,对于函数内变量它是局部变量,只在函数内部有效。

很多网友喜欢写大量的自定义函数,本身不能写在子线程内部,只能是调用函数,这里调用的时候一定要注意了,平时调用函数可以写的随意些:

call 函数

call 函数()

函数

函数()

这几种写法都是对的,但是作为子线程内部调用的时候,必须要写上括号。如果需要把返回值复制给变量,不能用call。

好了本期内容就这些。

相关文章

  • 「脚本通用模板」app卡屏后,通过多线程“重启”脚本

    大家好,我是公号3分钟学堂的郭立员,本期讲一下“「脚本通用模板」app卡屏后,通过多线程“重启”脚本”,在文章标题...

  • PySparkSQL脚本模板

    PySpark模板分为shell脚本和python脚本两部分,通过shell脚本提交spark任务。 shell脚...

  • python多线程基础

    多线程准备脚本test01 多线程准备脚本test02 多线程准备脚本test03 多线程准备脚本test04 1...

  • 自瞄3.15

    【脚本开关→】开【←脚本开关】 【脚本版本→】通用技能自瞄3.15【←脚本版本】 【脚本关闭公告→】脚本已更新.....

  • 自瞄3.16

    【脚本开关→】开【←脚本开关】 【脚本版本→】通用技能自瞄3.16【←脚本版本】 【脚本关闭公告→】脚本已更新.....

  • 前嗅ForeSpider脚本教程:模板脚本

    链接脚本是频道的模板中的脚本。配置了模板脚本,模板的处理流程将被改变: 1.如果脚本未正确返回dom区域节点,则该...

  • springboot应用重启脚本

    重启脚本

  • idea 自定义注释模板

    方法模板 方法入参脚本 返回参数脚本

  • 无视野自瞄4.10

    【脚本开关→】开【←脚本开关】 【脚本版本→】通用无视野自瞄4.10【←脚本版本】 【脚本关闭公告→】已是最新版本...

  • shell 脚本检测服务运行状态

    由于服务器性能问题,通过shell脚本,定时检测进程运行状态。并自动重启。 一、脚本编辑 check.sh 除此之...

网友评论

    本文标题:「脚本通用模板」app卡屏后,通过多线程“重启”脚本

    本文链接:https://www.haomeiwen.com/subject/qnhvzhtx.html