实例化对象被清空

qingfeng200634 2015-06-09 11:23:33
1. 我在做一个测试项目,测试项目中有一个关于测试器件的信息类。在开始测试后,会对类进行实例化,但在测试结束后,会跳错显示类为实例化。(由于测试时间比较长,会不会由于垃圾处理机制清空了对象)

2. 对于1出现的问题,同样的代码,但是其它电脑都是正常的。电脑系统都是win7 旗舰版,请问出现这种情况的原因是什么?(不确定系统之间有什么细微差别,我只是发现出问题的电脑(配置:I5 4G )与硬件的通信时间比较慢,但也不知道什么原因)

3. 怎样确认win7系统之间的差异?
...全文
226 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼孤竹 2015-06-09
  • 打赏
  • 举报
回复
个人理解 1、你实例化的作用范围,可能导致你的方法未结束,就被释放掉了。 也可能是你的执行流程,在你整体未结束时,实例化的那部分就结束了。 2、你说的机器问题,感觉没什么太大关系,操作系统一样,和硬件的关系不大。多数还是你程序中的问题。
於黾 2015-06-09
  • 打赏
  • 举报
回复
起码到底是32位还是64位你应该先看看才对
於黾 2015-06-09
  • 打赏
  • 举报
回复
引用 7 楼 dongxinxi 的回复:
你的描述过于简单,无法判断。不过应该跟机器没什么关系,程序的问题。特别地,如果用到了多线程,更可能出这种问题 机器配置的不同(比如工作站与服务器上)只会对.Net的GC回收产生细微的影响,但这对于一个健壮的应用程序而言绝对不是什么问题
问题就是楼主的程序不够健壮. 否则就不会有问题了
  • 打赏
  • 举报
回复
你的描述过于简单,无法判断。不过应该跟机器没什么关系,程序的问题。特别地,如果用到了多线程,更可能出这种问题 机器配置的不同(比如工作站与服务器上)只会对.Net的GC回收产生细微的影响,但这对于一个健壮的应用程序而言绝对不是什么问题
於黾 2015-06-09
  • 打赏
  • 举报
回复
或者如果你的项目如果在64位机器上并不要求必须以64位运行,那么应该编译成x86,dll也编译成x86 这样在64位环境下也以32位运行
於黾 2015-06-09
  • 打赏
  • 举报
回复
可能是因为引用了64位的dll,却在32位机器上运行导致出错 也有可能是因为引用了32位的dll,在64位的机器上运行导致出错 exe本身如果选择了anycpu,那么在32位和64位下看起来都能正常运行 可是dll是严格区分32位和64位的,并不能动态的适应目标机器 想自动适应,你必须引用2个dll并且判断当前机器位数,使用对应版本的dll
於黾 2015-06-09
  • 打赏
  • 举报
回复
我觉得很有可能是因为引用了64位的dll导致出错 而胡乱使用了try,catch将错误信息隐藏掉了 如果你使用try,catch,那么在catch里应该将详细的错误信息写入日志 否则就没法知道到底哪里出的问题 表现出来的情况就是虚假的"运行正常,但是数据不正常"
lili20090907 2015-06-09
  • 打赏
  • 举报
回复
个人感觉 对象被清空 和你的机器关系不大, 首先, 添加日志,找到看对象是在哪个地方被清空了,是不是你测试完 之前清理了该对象?追踪查看一下

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧