.Net写的Winform程序,运行一段时间就停止了,高分求教。 100

版本:.NetFramwork4.0服务器系统:windowsserver2008我的需求是通过我这个Winform程序调用C++动态库和硬件设备建立通信,通信建立完成后... 版本:.Net Framwork4.0
服务器系统:windows server 2008
我的需求是通过我这个Winform程序调用C++动态库和硬件设备建立通信,通信建立完成后,再调用这个动态库定时收发数据,其中程序中使用了3个定时器,会操作到数据库。程序写完后,所有功能都能满足我的需求,但是就是每次在服务器上运行大概1个小时后,程序就挂了,try cache也没捕捉异常,错误提示界面:

查看windows日志有提示错误:

求高手解决,高分悬赏。。。。。
解决可以另加分。。。
展开
 我来答
leskrfell
2013-06-29
知道答主
回答量:14
采纳率:0%
帮助的人:11.9万
展开全部
据你所说,程序运行一定时间后崩溃,
那么初步猜测你的数据库连接后忘记关闭,导致连接上限?
再者是时间控件了,这我也不太懂!
希望有所帮助...
更多追问追答
追问
你说的建议我之前有考虑,所以在数据库的连接串里面加了 pooling=false 但是仍然有相同的问题。
追答
功力不足了 抱歉……
百百mp3
2013-06-29 · TA获得超过855个赞
知道小有建树答主
回答量:901
采纳率:90%
帮助的人:542万
展开全部
是不是3个计时器在1小时后都调用了同一个函数而导致的崩溃?
还有你try_catch应该在Timer事件里...
更多追问追答
追问
try catch 在每个方法里面都有写,就是捕捉不到异常,有两个定时器有操作同一个DataTable 但是我lock了,应该不会是这边的原因。
追答
虽然try捕获不了错误,但日志写的很清楚,是System.AccessViolationException错误。
此错误大部分是由于访问受保护或损坏的内存而引起的。
(官方: 在试图读写受保护内存时引发的异常。)
原因不是在于C#程序而是在C++编的那个DLL里。
将dll里函数需要返回的局部变量都声明为static。
如果还是错,那就是C++代码的问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
板凳瓜子准备好了
2013-09-10 · TA获得超过163个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:128万
展开全部
这明显是多线程引起的异常,应该是你的多个线程同时访问同一个资源引起的,自己多理理代码吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式