远光软件 发表于 2015-8-19 10:55:00

TXTextControl 19版本 垃圾回收 问题

C#代码
文档导出功能(A窗体)-->调用单个文档生成内容(B窗体)

A窗体反射调用B窗体 或者在A窗体实例化B窗体调用都一次都是成功的,第二次调用时就会出现下面的垃圾回收异常,
问题:
检测到 CallbackOnCollectedDelegate
Message: 对“TXTextControl.Server!TXTextControl.ServerTextControl+?::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。
向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。

请问题该如何处理,

iceman 发表于 2015-8-19 14:18:00

回复 1楼远光软件的帖子

感谢您的问题反馈,能否请你上传个demo到论坛我们用于重现问题。

另外,您提出的其他问题我们已经在和厂商进行沟通,有进展会通知您。

远光软件 发表于 2015-8-19 15:33:00

在我们实际项目 写的导出文档程序,当第二次导出时就一定会出现问题(一次批量导出多个文档(一个实例调用多次生成文档窗口,最后释放实例窗口))

附加这个是写的最简单demo ,测试场景在debug模式,运行后多次调用,不返回c# 的IDE界面不会存在问题,
但在运行21次调用(点击21次按钮)左右在返回IDE界面就会出现附加截图的现象(同上一次反馈的内容)

iceman 发表于 2015-8-19 18:59:00

回复 3楼远光软件的帖子

好的demo已经查收,有进展及时通知您

远光软件 发表于 2015-8-26 08:27:00

请快答复,这个问题比较严重

gw0506 发表于 2015-8-26 12:45:00

回复 5楼远光软件的帖子

抱歉,回复晚了。

其实把ServerTextControl作为全局变量或者包成属性都可以,就解决问题了,你可以在你的demo基础上尝试一下,我们用你的demo测试后无异常。
      ServerTextControl serverControl = new ServerTextControl();
      private bool ExportReportDataFileWithServerControl(string fileFullName, byte[] fileContent)
      {
            try
            {
                //ServerTextControl serverControl = new ServerTextControl();
                serverControl.Create();
                serverControl.Load(fileContent, BinaryStreamType.InternalUnicodeFormat);
                serverControl.Save(fileFullName, StreamType.RichTextFormat);
               
                return true;
            }
            catch (Exception ex)
            {
                //处理异常
                return false;
            }
      }

iceman 发表于 2015-9-2 10:23:00

回复 5楼远光软件的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: TXTextControl 19版本 垃圾回收 问题