質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

830閲覧

C# WPF 図形オブジェクトを繰り返し効率よく使用したい

mnhktm

総合スコア25

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/09/22 06:18

前提・実現したいこと

C#のWPFで Line Pathを使用した図形描画のプログラムを
作成しています。図形は何度も消去と描画を繰り返します。
表示順序を繰り返し確認するプログラムです。図形はLineとPathのArcです。
Line を都度 newして Canvas にAddしています。
図形を画面から消すのは Canvas.Childlen.Remove()で消しており、同じ再描画
拡大再描画も行います。つまり、何度も new Line を繰り返し、スコープから
出る事で、自然にGCで破棄されていると思っていますが、図形オブジェクトが
メモリ上で無駄になっているような気がします。メモリが無駄にならない
方法が知りたいです。

発生している問題・エラーメッセージ

WPFのLineのような図形オブジェクトはローカルメソッドでnew してもメソッド
から出た後、いつかGCで破棄されるから気にしなくても良いのか、または、new した 
Line をどこかに(リストとか)記憶させ、例えば、プロパティーなどの
座標を変更して使いまわす方が良いのか、どちらが無駄にメモリを消費しない
作成方法として適しているのでしょうか。(場合によりけりとは思いますが)

該当のソースコード

C# WPF

試したこと

補足情報(FW/ツールのバージョンなど)

Windows10
Visual studio Community2017 最近 WPFで勉強中です。
製作中の図形のライン数は100本程度から数百本になる場合があります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

図形オブジェクトがメモリ上で無駄になっているような気がします

具体的な不具合、不都合が無ければ気にしないのが一番です。
ただし数百本の線を引くと描画パフォーマンス的には厳しいかもしれません。
そんな時は↓
WisdomSoft WPFプログラミング入門 - 第4章 描画オブジェクト - 4.11.1 線の描画

投稿2018/09/22 08:09

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mnhktm

2018/09/23 01:20

的確なご回答ありがとうございます。メモリの細かな解放云々は気にしないようにします。 その後、Lineで1000本の表示をしてみましたが、1秒前後掛かるようです。 用途にもよりますが、Lineオブジェクトは単純な表示には多機能が負担になるようです。 私はWindowsFormを最初にやってきたので、単に書いて消すを実現したい場合 紹介いただいた内容は非常に有益です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問