Foxtable(狐表)用户栏目专家坐堂 → 重复启动


  共有1458人关注过本帖树形打印复制链接

主题:重复启动

帅哥哟,离线,有人找我吗?
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:8887 威望:0 精华:0 注册:2015/8/12 16:28:00
重复启动  发帖心情 Post By: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 = True
End If

之前在论坛学的放置重复启动的反复,通过mutex来闲置只有1个线程可以访问。

现在想在判断有重复线程时,关闭之前的线程。怎么做?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110348 积分:561588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/3 15:48:00 [只看该作者]

这个不合理,反正都要打开一个,既然有之前打开了的程序,就应该继续使用,不然可能导致没有保存的数据丢失。

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:8887 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/4/3 15:52:00 [只看该作者]

 因为之前打开的界面不存在。异常关闭了但是mutex还在。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110348 积分:561588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:8887 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/4/3 16:10:00 [只看该作者]

 异常关闭经常出现在升级的时候,员工点升级后,升级完成的界面出来后会立刻再次开启,其实这时候主文件并没有被升级包里面的替换,就会卡死。关闭软件进程也还在


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110348 积分:561588 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/3 16:30:00 [只看该作者]

不要在升级后自己写代码重启,应该彻底关闭,然后重新打开程序。

 回到顶部