Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

更新文件时卡死 #38

Open
lscgzwd opened this issue Dec 9, 2021 · 15 comments
Open

更新文件时卡死 #38

lscgzwd opened this issue Dec 9, 2021 · 15 comments

Comments

@lscgzwd
Copy link

lscgzwd commented Dec 9, 2021

引发的异常:“System.ObjectDisposedException”(位于 System.Data.SQLite.dll 中)
程序“[14120] PreAudit.exe”已退出,返回值为 -1 (0xffffffff)。

下载完文件,开始解压替换时候卡死

@lianglj
Copy link

lianglj commented Dec 9, 2021 via email

@findersky
Copy link

findersky commented Dec 9, 2021 via email

@iccfish
Copy link
Owner

iccfish commented Dec 15, 2021

有可以测试复现的例子吗?这个错误信息很奇怪,System.Data.SQLite并不是更新程序依赖的问价。

@lscgzwd
Copy link
Author

lscgzwd commented Dec 19, 2021

有可以测试复现的例子吗?这个错误信息很奇怪,System.Data.SQLite并不是更新程序依赖的问价。

我的项目是CefSharp的,谷歌浏览器用到了SQLite,项目本身也用到了SQLite, 我想找到报错的点,但是我发现用github上的源码,每次执行到启动外部进程后,只执行完BeginCheckUpdateInProcess 就不执行后面的了,我看后面正常应该要弹窗确认,但是那个没弹出来。我怀疑是杀进程,可能cefsharp的进程杀不掉导致

@lscgzwd
Copy link
Author

lscgzwd commented Dec 28, 2021

我找到卡死的原因了。我用的是github上master分支的源码,在拉起的独立更新进程的updater.static.cs的Instance_UpdatesFound方法中,没有判断当前是不是在独立更新线程中,后面继续执行了showuiform导致死循环了。也就是没有触发在abstractupdatebase中的onupdatefound

@lscgzwd
Copy link
Author

lscgzwd commented Jan 5, 2022

另外还发现原来杀进程的方法在win10上已经不能用了,那个hasexited 始终是返回的true,我给注释掉了,不判断,强制调用kill了。

@iccfish
Copy link
Owner

iccfish commented Jan 5, 2022

另外还发现原来杀进程的方法在win10上已经不能用了,那个hasexited 始终是返回的true,我给注释掉了,不判断,强制调用kill了。

这个方法始终返回true?不应该吧。我开发机从win10到win11,没发现过这个问题。

@iccfish
Copy link
Owner

iccfish commented Jan 5, 2022

我找到卡死的原因了。我用的是github上master分支的源码,在拉起的独立更新进程的updater.static.cs的Instance_UpdatesFound方法中,没有判断当前是不是在独立更新线程中,后面继续执行了showuiform导致死循环了。也就是没有触发在abstractupdatebase中的onupdatefound

ShowUiForm方法会尽量把窗体调度到UI线程上执行。

@lscgzwd
Copy link
Author

lscgzwd commented Jan 13, 2022

我这win10,打断点,还是编译后运行, 输出日志,都显示返回的true, 我是winform , 里面有cefsharp做的界面,也许和这个有关。多次测试都是显示返回的true,而且另外同事的机器上也是,原因不明,我现在改成直接强行kill 就过了这个点

@lscgzwd
Copy link
Author

lscgzwd commented Jan 13, 2022

我找到卡死的原因了。我用的是github上master分支的源码,在拉起的独立更新进程的updater.static.cs的Instance_UpdatesFound方法中,没有判断当前是不是在独立更新线程中,后面继续执行了showuiform导致死循环了。也就是没有触发在abstractupdatebase中的onupdatefound

ShowUiForm方法会尽量把窗体调度到UI线程上执行。

其实二次弹窗是没必要的,从产品角度上来讲,因为最开始在winform 里面已经检测更新,弹出窗体了,用户点立即更新,这个时候拉起的新线程应该直接更新就行了,无需再次确认。

@iccfish
Copy link
Owner

iccfish commented Jan 13, 2022

我找到卡死的原因了。我用的是github上master分支的源码,在拉起的独立更新进程的updater.static.cs的Instance_UpdatesFound方法中,没有判断当前是不是在独立更新线程中,后面继续执行了showuiform导致死循环了。也就是没有触发在abstractupdatebase中的onupdatefound

ShowUiForm方法会尽量把窗体调度到UI线程上执行。

其实二次弹窗是没必要的,从产品角度上来讲,因为最开始在winform 里面已经检测更新,弹出窗体了,用户点立即更新,这个时候拉起的新线程应该直接更新就行了,无需再次确认。

有点意思……是不应该有二次弹窗的。可以的话烦请提供一个可复现问题的样本,感谢。

@andywu188
Copy link

andywu188 commented Aug 25, 2022

另外还发现原来杀进程的方法在win10上已经不能用了,那个hasexited 始终是返回的true,我给注释掉了,不判断,强制调用kill了。

这个方法始终返回true?不应该吧。我开发机从win10到win11,没发现过这个问题。

哈哈,

我和你一样,也是使用了浏览器内核,我用的是CefGlue

这个问题,我也频繁出现,早就给作者反馈过,但作者没有认可我的情况。

没有办法,只能我自己来,以下是我自己修改的版本:
8ab83f3

@lianglj
Copy link

lianglj commented Aug 25, 2022 via email

@GlodenBoy
Copy link

GlodenBoy commented Nov 11, 2022

另外还发现原来杀进程的方法在win10上已经不能用了,那个hasexited 始终是返回的true,我给注释掉了,不判断,强制调用kill了。

这个方法始终返回true?不应该吧。我开发机从win10到win11,没发现过这个问题。

哈哈,

我和你一样,也是使用了浏览器内核,我用的是CefGlue

这个问题,我也频繁出现,早就给作者反馈过,但作者没有认可我的情况。

没有办法,只能我自己来,以下是我自己修改的版本: 8ab83f3

同样遇到这个问题,也是嵌入了webview,但是我这个是杀成功了,但是右下角更新的一直在不停的循环弹。

@lscgzwd
Copy link
Author

lscgzwd commented Nov 13, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants