点击关闭窗口按钮时弹出错误(collection was modified...)

问题描述

用socket写了一个聊天程序(可以局域网以及外网使用),采用线程,估计是线程的问题,再弹出的错误窗口中,点继续,窗口关闭,马上又再弹出,再点继续,有时会弹出好几次。许多人遇到类似问题,往往是因为foreach循环中出现,我并没有用到该循环。因为是在win7系统中写的代码,并不会有错误。生成exe后,在公司xp系统中运行,才会有如题的错误。因此我也不知道该如何调试。

解决方案

解决方案二:
VM中装XP调试
解决方案三:
你没有用for或foreach,用while或dowhile不也一样是循环吗而且如果你使用了异步侦听,而客户端使用的是死循环,你这里一样会不断的触发事件执行还有如果你使用了timer之类的定时执行的控件,一样会不断的执行关键点,是你应该先查明到底报什么错误,修改掉这个错误,而不是总在纠结错误窗口弹出几次的问题
解决方案四:
引用2楼Z65443344的回复:

你没有用for或foreach,用while或dowhile不也一样是循环吗而且如果你使用了异步侦听,而客户端使用的是死循环,你这里一样会不断的触发事件执行还有如果你使用了timer之类的定时执行的控件,一样会不断的执行关键点,是你应该先查明到底报什么错误,修改掉这个错误,而不是总在纠结错误窗口弹出几次的问题

1、我在可以调试的电脑(win7)不会出错,将生成的exe放到xp电脑上出错,因此我找不到问题在哪里2、我尽量将所有出错时的现象都描述出来,希望能给大家提供更多线索。3、今天发现不是win7和xp的问题,而是只要装了VS的电脑,都不会出错。于是我将不同电脑进行对比,又没发现可疑之处,奇怪哦
解决方案五:
要对每个线程进行资源释放才能关闭软件。win7带有.NET3.0以上组件,会自动释放内存,XP没有,所有没有释放到内存。
解决方案六:
引用4楼notbb的回复:

要对每个线程进行资源释放才能关闭软件。win7带有.NET3.0以上组件,会自动释放内存,XP没有,所有没有释放到内存。

你好,我在xp装了framework4.0,还需要装哪个,我现在几乎无法从代码上解决了,我想在安装时,将该组件打包进去。
解决方案七:
或者你可以试试在formclosing事件里加上类似下面的代码:关闭sockets连接,直接释放线程的内存。IfmySockets.ConnectedThenmySockets.Close()EndIf聊天服务器.Dispose()

时间: 2024-10-02 01:26:29

点击关闭窗口按钮时弹出错误(collection was modified...)的相关文章

如何取消电脑关闭IE浏览器时弹出的“是关闭所有选项卡还是当前选项卡”提示

  如何取消电脑关闭IE浏览器时弹出的"是关闭所有选项卡还是当前选项卡"提示         方法一: 在弹出的这个提示窗口中,勾选"总是关闭所有选项卡",然后点击"关闭所有选项卡"按钮,这样下次再关闭IE窗口时,就不会再弹出该提示了. 方法二: 1.打开IE浏览器--"Internet选项"; 2.在"常规"中,点击"选项卡"按钮; 3.取消勾选"关闭多个选项卡时发出警告&q

使用u盘时弹出错误提示0x80070570解决方法

  使用u盘时弹出错误提示0x80070570解决方法来啦~相信很多朋友在使用U盘都遇到了错误提示0x80070570,遇到这情况该怎么解决呢?下文小编就为大家带来使用u盘时弹出错误提示0x80070570的解决方法,一起去了解下吧. 使用u盘时弹出错误提示0x80070570解决方法: 1.先检查u盘是否能够正常被电脑识别到,如果可以识别到那么再确认u盘中的文件数据是否重要,如果不重要,那么重新格式化u盘即可解决问题; 2.如果u盘中有重要文件时那么再尝试使用下面的操作解决问题: ①.将鼠标移

Teechart在vs2015c#中引用时弹出错误

问题描述 Teechart在vs2015c#中引用时弹出错误 求大神指点迷津!谢谢

dwz框架-DWZ弹出dialog时弹出错误

问题描述 DWZ弹出dialog时弹出错误 添加 在打开过程中报错0x800a138f - JavaScript 运行时错误: 无法获取未定义或 null 引用的属性"open" $.pdialog.open(url, rel, title, options);中options的close是undefined, param为空

u盘时弹出错误提示0x80070570解决方法

  1.先检查u盘是否能够正常被电脑识别到,如果可以识别到那么再确认u盘中的文件数据是否重要,如果不重要,那么重新格式化u盘即可解决问题; 2.如果u盘中有重要文件时那么再尝试使用下面的操作解决问题: ①.将鼠标移至u盘图标上,然后单击右键,在弹出的选项列表中点击"属性"选项,如下图所示 ②.在弹出的u盘属性窗口中,选择"工具"标签,再点击"开始检查"按钮,如下图所示: ③.接着勾选"自动修复文件系统错误"和"扫描并

Win7如何关闭打开文件时弹出的安全警告提示

  1.按Win+R键,打开运行,输入"gpedit.msc",点击确定; 2.在打开的本地组策略编辑器窗口页面中,依次展开到用户配置--管理模块--Windows组件--附件管理器; 3.找到并打开"中等危险文件类型的包含类表",修改为"已启用",在选项中添加.exe,点击应用并确定即可.

如何关闭打开IE时弹出的“你的浏览器已升级”提示

1. 在左下角"开始"-"运行"里输入gpedit.msc; 2. 找到"用户配置"-"管理模块"-"windows组件"-"Internet Explorer",双击"Internet Explorer",在右边设置里找到"阻止执行首次运行自定义设置",双击打开,将其改为"已启用",在选项中选择"直接跳到主页&quo

vs2012打开mvc时弹出错误 求怎么解决啊

问题描述 未能将网站http://localhost:28637/配置为使用ASP.NET4.5.为了使此网站正确运行,您必须将它手动配置为使用ASP.NET4.5.ASP.NET4.0尚未在Web服务器上注册.为了使您的网站正常运行,您需要为ASP.NET4.0手动配置您的Web服务器.原本装的是2015社区版后来卸载装了2012旗舰版装完2012打开mvc4就有这个提示了求如何解决呢系统是win8的百度说是要配置iis管理器但是没找到在哪求如何解决谢谢 解决方案 解决方案二:自己顶一下.

我在gridview里点击“选择”按钮,希望弹出窗口,在弹出窗口操作完毕后关闭,返回值给父窗口,并对父窗口的数据源重新绑定以刷新gridview。我这么做是不能刷新gridview的,请指教。

问题描述 我在gridview里点击"选择"按钮,希望弹出窗口,在弹出窗口操作完毕后关闭,返回值给父窗口,并对父窗口的数据源重新绑定以刷新gridview.我这么做是不能刷新gridview的,请指教.前端asp.net代码:<asp:GridViewID="GridView1"runat="server"Width="860px"AllowPaging="True"AutoGenerateColum