以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 重复启动 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191239) |
-- 作者:lur320 -- 发布时间:2024/4/3 15:38:00 -- 重复启动 Static mu As System.Threading.Mutex Dim sucess As Boolean = False mu = New System.Threading.Mutex(True, "productionsystem", sucess) If Not sucess Then e.HideSplashForm = True MessageBox.Show("系统已经在运行,系统不支持重复开启!") 这里加什么代码可以关闭已有的线程? e.Cancel = TrueEnd If 之前在论坛学的放置重复启动的反复,通过mutex来闲置只有1个线程可以访问。 现在想在判断有重复线程时,关闭之前的线程。怎么做?
|
-- 作者:有点蓝 -- 发布时间:2024/4/3 15:48:00 -- 这个不合理,反正都要打开一个,既然有之前打开了的程序,就应该继续使用,不然可能导致没有保存的数据丢失。 |
-- 作者:lur320 -- 发布时间:2024/4/3 15:52:00 -- 因为之前打开的界面不存在。异常关闭了但是mutex还在。 |
-- 作者:有点蓝 -- 发布时间:2024/4/3 16:06:00 -- 如果经常异常关闭,应该是项目里有不合理的代码和设置,应该去查找并改正这些错误,而不是这种简单粗暴的对待。如果说只是偶尔出现的情况,手工到任务管理器里找到进程关闭好了。 如果要强制杀进程可以使用kill Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() For Each p As System.Diagnostics.Process In ps \'output.show(p.processName) If ("Foxtable.exe(如果是的程序改为在任务管理器种看到的进程名称即可)" = p.ProcessName) p.kill End If Next |
-- 作者:lur320 -- 发布时间:2024/4/3 16:10:00 -- 异常关闭经常出现在升级的时候,员工点升级后,升级完成的界面出来后会立刻再次开启,其实这时候主文件并没有被升级包里面的替换,就会卡死。关闭软件进程也还在 |
-- 作者:有点蓝 -- 发布时间:2024/4/3 16:30:00 -- 不要在升级后自己写代码重启,应该彻底关闭,然后重新打开程序。 |