My2009 发表于 2012-7-27 17:04:33

为何程序在点退出后,仍占用内存?

本帖最后由 My2009 于 2012-7-27 17:06 编辑

一个程式在用EXIT退出后,发现现在任务管理器里仍然存在,要过6S左右的时间才能退出,即在按F5运行后,再退出要过6S左右的时间才能进行编译,否则此栏的菜单上大多为灰色,不知退如是好,大侠们有碰到这样的问题吗?

xiaowo 发表于 2012-7-27 17:16:38

AutoIt3.exe还在,证明代码未执行完毕,Exit还未执行

检查一下代码看哪里错了

qwg192800 发表于 2012-7-27 17:22:05

肯定代码在那里有停止了

My2009 发表于 2012-7-27 17:32:33

为了检查是否执行到EXIT特意将退出改成以下模式:
Func Quit()
    GUISetState(@SW_HIDE)
        ProgressOn("退出", "正在退出软件,请稍候...", "", (@DesktopWidth - 340) / 2, (@DesktopHeight - 180) / 2)
        _MySQL_Close($MysqlConn) ;关闭连线
        _MySQL_EndLibrary() ;关闭 MYSQL (DLL)
        DllCall($dll, "int:cdecl", "DeInitDecoration")
    DllCall($dll, "int:cdecl", "RemoveSkin")
    DllClose($dll)
    ProgressOff()
        Exit
EndFunc
ProgressOn对话框很快就执行完了,所以理应是到了EXIT了,只是不知为何还是要占好几秒的时间{:face (197):}

半芯竹 发表于 2012-7-27 22:50:20

本帖最后由 半芯竹 于 2012-7-28 22:55 编辑

网络有时卡,一下子多发了。


LZ可以添加个时间记录,作对比就知道哪里出问题了

半芯竹 发表于 2012-7-27 22:50:33

应该是关闭SQL部份执行慢了。。
你可以尝试把EXIT改成如下,就知道执行到EXIT了没有。。判断一下延时是哪个所为。。
EXIT(msgbox(0,0,'程序已执行到退出。'))
如果还是没看到。可以将程序这样写:
Func Quit()
    GUISetState(@SW_HIDE)
      ProgressOn("退出", "正在退出软件,请稍候...", "", (@DesktopWidth - 340) / 2, (@DesktopHeight - 180) / 2)
                IniWrite(@ScriptDir&"\time.ini", "time", "now1", @HOUR&@MIN&@SEC)
      _MySQL_Close($MysqlConn) ;关闭连线
                IniWrite(@ScriptDir&"\time.ini", "time", "now2", @HOUR&@MIN&@SEC)
      _MySQL_EndLibrary() ;关闭 MYSQL (DLL)
                IniWrite(@ScriptDir&"\time.ini", "time", "now3", @HOUR&@MIN&@SEC)
      DllCall($dll, "int:cdecl", "DeInitDecoration")
    DllCall($dll, "int:cdecl", "RemoveSkin")
    DllClose($dll)
        IniWrite(@ScriptDir&"\time.ini", "time", "now4", @HOUR&@MIN&@SEC)
    ProgressOff()
      Exit
EndFunc
这样可以记录一下时间,作对比了。。

My2009 发表于 2012-7-30 08:22:06


now1=081932
now2=081932
now3=081932
now4=081932
早上一来就试了楼上的代码,得到的数据如上,看了下,确是调用MYSQL出现的问题,还用以下的错误提示
Error in my_thread_global_end(): 2 threads didn't exit,不知有没有人有好的解决方案?

xms77 发表于 2012-7-30 13:01:04

回复 1# My2009
楼主,360没有报毒吗?

My2009 发表于 2012-8-1 13:44:03

没有报毒,问题还是没有解决。{:face (88):}
页: [1]
查看完整版本: 为何程序在点退出后,仍占用内存?