» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 29 12
发新话题
打印

C#编程遇到一个问题,求解决思路。。。。

posted by wap, platform: Android
在主窗口某个按钮里动态生成了1个对话框,用于显示数据曲线

问题来了,只要生成了对话框,大约3到5分钟后必弹出一个错误信息“请确保在试用某个资源之前尚未将其释放 ”,但是跟普通的错误信息不一样,没有提示是具体出错位置。。。

开始我感觉是对话框声明的位置不对,按钮函数返回了,对话框对象就被释放了,但是放到按钮函数外头也不行,问题依旧。。。

实在搞不懂为什么,请大神赐教解决思路。。。。


TOP

单步调试啊,按你描述,最有可能是引用的资源被释放了,还是代码发上来

[ 本帖最后由 xpressure 于 2016-9-17 19:57 编辑 ]



本帖最近评分记录
  • shixn 激骚 +2 恭喜发财 2016-9-17 21:15

TOP

引用:
原帖由 xpressure 于 2016-9-17 19:52 发表
单步调试啊,按你描述,最有可能是引用的资源被释放了
关键是不知道出错的位置啊。。。

出错的时间也不定,时长时段,但基本都是5分钟左右。。。


TOP

posted by wap, platform: iPhone
把显示曲线图的代码注释点,只留生成窗体弹窗的代码,看看还有没有这种情况。如果没有就是曲线图的问题,再逐步排查吧,最好贴代码
本帖最近评分记录
  • shixn 激骚 +2 恭喜发财 2016-9-17 21:15

TOP

比如我在主窗口的某个函数里,用这个方法生成了窗口

private void NewDlgBtn_Click(object sender, RoutedEventArgs e)
{
    DisplayDlg dlg = new DisplayDlg ();
    .....
    dlg .Show();
    return;
}

当NewDlgBtn_Click函数返回后,dlg还会存在多久??会不会被自动释放??

TOP

posted by wap, platform: iPhone
你在主窗体声明一个dlg对象,然后再在click时,主窗体.dlg = new DisplayDlg ();就OK了
本帖最近评分记录
  • shixn 激骚 +2 恭喜发财 2016-9-17 21:15

TOP

引用:
原帖由 HLucifer 于 2016-9-17 20:00 发表
posted by wap, platform: iPhone
把显示曲线图的代码注释点,只留生成窗体弹窗的代码,看看还有没有这种情况。如果没有就是曲线图的问题,再逐步排查吧,最好贴代码
只留一个定时器,一个cnt,每1秒cnt++,写到textbox里,看啥时候死。。。

其他代码统统都删干净了。

TOP

posted by wap, platform: 红米Note3
一般是你的窗体owner diposed了

TOP

引用:
原帖由 jzhl 于 2016-9-17 20:11 发表
posted by wap, platform: iPhone
你在主窗体声明一个dlg对象,然后再在click时,主窗体.dlg = new DisplayDlg ();就OK了
我试过在主窗体声明dlg

然后再click里再声明一个dlg1
(正常来说这里dlg1有好多初始化操作,设置横纵坐标范围,图线颜色等,但加不加效果一样,都死。。)
然后
dlg=dlg1

dlg.show()

道理应该一样吧,,,这样也不行。。。

而且有时候需要新建多个窗口,必须要有多个DisplayDlg对象。。。

[ 本帖最后由 shixn 于 2016-9-17 20:28 编辑 ]

TOP

引用:
原帖由 maybach 于 2016-9-17 20:19 发表
posted by wap, platform: 红米Note3
一般是你的窗体owner diposed了
有没有什么办法追踪啊??

我肯定没有主动调用过close,diposed之类的

TOP

引用:
原帖由 shixn 于 2016-9-17 20:05 发表
比如我在主窗口的某个函数里,用这个方法生成了窗口

private void NewDlgBtn_Click(object sender, RoutedEventArgs e)
{
    DisplayDlg dlg = new DisplayDlg ();
    .....
    dlg .Show();
    return ...
没有手工释放的话,应该不会是这里的问题

TOP

引用:
原帖由 xpressure 于 2016-9-17 20:21 发表

没有手工释放的话,应该不会是这里的问题
肯定没有手工释放

那就是说我在click里声明的DisplayDlg 对象会一直存在?直到手动关闭窗口为止?

TOP

引用:
原帖由 shixn 于 2016-9-17 20:24 发表

肯定没有手工释放

那就是说我在click里声明的DisplayDlg 对象会一直存在?直到手动关闭窗口为止?
系统会自行处理,看上去就跟一直存在一样

TOP

引用:
原帖由 xpressure 于 2016-9-17 20:27 发表


系统会自行处理,看上去就跟一直存在一样
我开始就是怀疑会不会被系统自己处理掉了。。。

但是把DisplayDlg对象放在click外面也没用。。。

疯了

TOP

引用:
原帖由 shixn 于 2016-9-17 20:30 发表


我开始就是怀疑会不会被系统自己处理掉了。。。

但是把DisplayDlg对象放在click外面也没用。。。

疯了
没有联系上下看的话,很难说问题在哪,我感觉不是这个对话框的问题

TOP

 29 12
发新话题
     
官方公众号及微博