避免代码导致服务重启的常见问题及优化指南
目前已知有以下几种情况会导致触动服务重启,请注意规避:
- 在循环中调用 addTSOcrDict 或 addTSOcrDictEx 函数加载字库。由于字库只需加载一次,建议将相关调用移至循环外,避免重复加载。
正确用法
1 2 3 4 5 |
while true do index = addTSOcrDict("dict.txt") ret = tsOcrText(index,962,19,1068,54,"FFFFFF,000000",90) toast(ret) end |
错误用法
1 2 3 4 5 |
index = addTSOcrDict("dict.txt") while true do ret = tsOcrText(index,962,19,1068,54,"FFFFFF,000000",90) toast(ret) end |
- 在循环中调用 fwShowWnd 函数创建父窗口。建议在调用结束后及时调用 fwCloseWnd 关闭父窗口,或者将相关调用移至循环外,以避免内存占用。
正确用法
1 2 3 4 5 6 7 |
fwShowWnd("window1",40,40,400,400,1); while true do fwShowTextView("window1","text1","文本视图","center","FF0000","FFDAB9",20,0,10,10,200,200,0.5); mSleep(5000); fwCloseView("window1","text1") end fwCloseWnd("window1"); |
错误用法
1 2 3 4 5 |
while true do fwShowWnd("window1",40,40,400,400,1); fwShowTextView("window1","text1","文本视图","center","FF0000","FFDAB9",20,0,10,10,200,200,0.5); mSleep(5000); end |
- 在循环中调用 fwShowTextView 等浮动窗口函数显示视图。建议在调用后及时调用 fwCloseView 关闭视图以释放内存。
正确用法
1 2 3 4 5 6 7 |
fwShowWnd("window1",40,40,400,400,1); while true do fwShowTextView("window1","text1","文本视图","center","FF0000","FFDAB9",20,0,10,10,200,200,0.5); mSleep(5000); fwCloseView("window1","text1") end fwCloseView("window1","text1"); |
错误用法
1 2 3 4 5 6 |
fwShowWnd("window1",40,40,400,400,1); while true do fwShowTextView("window1","text1","文本视图","center","FF0000","FFDAB9",20,0,10,10,200,200,0.5); mSleep(5000); end fwCloseView("window1","text1"); |
- findImageInRegionFuzzy 函数 kind 为 3 时,如果图片较大并且图片数量较多时可能会出现此问题。请减少图片数量。
为确保脚本的稳定运行,请尽量避免上述写法,并按照推荐的方式进行优化。
除特别注明外,本站所有文章均为触动精灵官网原创,转载请注明出处来自https://www.touchsprite.com/12006.html