Crystal Reports for VisualStudio2010 SP1をインストールした環境にて、
1.レポートファイルの読み込み
2.レポートファイル上にある、TEXTオブジェクトにプログラムにてアタッチして、編集
3.印刷
を繰り返し、16000回を過ぎたあたりからメモリ不足にて、レポートファイルの読み込みに
失敗します。
メモリリークなどを調べた結果、CrystalReportsが内部で確保したかもしれない、Mutex
オブジェクトが1回の処理で3~5ぐらいずつ、増えていっています。
Try
csReport.Load(m_acRPTFiles(nID), OpenReportMethod.OpenReportByDefault)
Catch ex As Exception
AddLog(ex.Message)
Exit Function
End Try
If csReport.IsLoaded = False Then
AddLog("読み込みチェックにて、失敗を検出!!")
Exit Function
End If
nFNo = 1
For nI = My.Settings.STARTDATAPOS To nDCount - 1
acFieldName = "P" & Format(nFNo, "000")
Try
CrTxt = CType(csReport.ReportDefinition.ReportObjects(acFieldName), _
CrystalDecisions.CrystalReports.Engine.TextObject)
CrTxt.Text = asData(nI)
CrTxt.Dispose()
Catch ex As Exception
AddLog(ex.Message)
End Try
nFNo = nFNo + 1
Next nI
Try
csReport.PrintOptions.PrinterName = My.Settings.PRINTERNAME
csReport.PrintToPrinter(1, False, 0, 0)
csReport.Close()
Catch ex As Exception
AddLog(ex.Message)
csReport.Dispose()
Exit Function
End Try
というようなコーディングです。
CrystalReportsの問題ではないかもしれませんが、メモリの解放を行いたいので
オブジェクトの整理の方法を教えていただけないでしょうか。
よろしくお願いいたします。