サポート&サービス

Home > サポート&サービス > テクニカルサポート > ナレッジベース

テクニカルサポート

製品に関する技術的なサービスを提供しています。製品別の技術情報(ナレッジベース)および、対応環境情報をご覧いただけます。また、E-mailによるテクニカルサポートのお申し込みもこちらで受け付けています。

ComponentOne サブスクリプション製品をご購入された方

サブスクリプションにて、ComponentOne製品(ComponentOne Studio、Wijmo、Xuni)をご購入された方は、下記のComponentOne Studioサイトからユーザー登録をお願いいたします。

ComponentOne サブスクリプション製品のユーザー登録を行う

ナレッジベース

InputManCell機能を使用するとメモリリークが発生する
文書番号 : 39842     文書種別 : Bug
登録日 : 2017/01/16     最終更新日 : 2017/10/25
文書を印刷する
対象製品
MultiRow for Windows Forms 8.0J
ステータス
現象確認済み
詳細
MultiRowでInputManCell機能を使用した場合、以下のいずれかの処理を実行したときに、使用メモリの一部が解放されずメモリリークが発生します。

(1)MultiRowが使用されているフォームを、Form.Closeメソッドで閉じる。
(2)MultiRowのTemplateプロパティに、別のテンプレートを設定する。

そのため、上記の処理を繰り返すと、アプリケーションの使用メモリが増大していきます。
明示的にDisposeメソッドを実行した場合も同様です。
リークした分のメモリは、MultiRowのオブジェクトを破棄しても開放されません。アプリケーションの終了によって開放されます。

この現象は以下の2つのオブジェクトが原因となっています。

原因1:MouseTapStylusStatusTrackerオブジェクトによる問題
このオブジェクトはすべてのInputManコントロールによって作成されるため、すべてのInputManCellが対象となります。
原因2:GcTextBoxのDropDownEditor.TouchToolBarオブジェクトによる問題
このオブジェクトはGcTextBoxにのみ作成されるため、GcTextBoxだけが対象なります。

上記のうち、どちらか一方または両方のオブジェクトが使用されることでメモリリークが発生します。
回避方法
1. フォームの表示と非表示を繰り返す場合は、Form.Closeメソッドでフォームを閉じるのではなく、Form.HideメソッドやForm.Visibleプロパティを使用してフォームを非表示にしてください。

2. 複数のテンプレートを切り替える場合は、Templateプロパティに別のテンプレートを設定するのではなく、テンプレートごとにMultiRowコントロールを用意し、MultiRowのVisibleプロパティを使用して表示を切り替えてください。
キーワード
MLTR20008

この情報は、疑問・問題解決のお役に立ちましたか?

    


こちらに入力されたご質問には回答できませんので、製品に関するお問い合わせは、別途「E-mailサポート」をご利用ください。


※ 個人情報保護のため、個人情報の記入はご遠慮ください。

このページの先頭へ