1

私は WPF アプリケーションを作成しましたが、クライアントから、すべてのアクションでメモリ消費量が増加するように求められました。彼は、TaskManager にチェックインしたと言いました (はい、私もチェックしました)。

ANTS を使用してメモリ リークをチェックしましたが、失敗しました。アプリケーションのメモリ リークの問題は解決済みです (よく知られているように、メモリ リークとメモリ消費は異なります)。ただし、たとえば ListBox でアイテムを選択するなど、すべての操作で同じメモリ消費量が増加します。

これが私が使用したCSコードです。

private void button1_Click(object sender, RoutedEventArgs e)
    {
        ListBoxItem item = (PinnedListBox.SelectedItem as ListBoxItem);
        PinnedListBox.Items.Remove(item);
        UnPinnedListBox.Items.Add(item);
    }

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        ListBoxItem item1 = (UnPinnedListBox.SelectedItem as ListBoxItem);
        UnPinnedListBox.Items.Remove(item1);
        PinnedListBox.Items.Add(item1);
    }

Button1 をクリックすると、Item が PinnedItems から UnPinned に転送され、Button2 の OnClick でアイテムが Unpinned から Pinned に転送されます。

誰か、これについてアドバイスをください。

前もって感謝します。

KSAM

4

1 に答える 1

1

WPF アプリケーションは、Winforms アプリケーションと比較して比較的大量のメモリを使用します。ただし、その場合でも、アプリの実行中に、OS はアプリが必要とするときにメモリを提供します。ある時点で、アプリがガベージ コレクションを実行し、基本的にメモリが解放されます。

アプリを最小化することで、メモリを解放する簡単なトリックを実行できます。

参照: http://windows.microsoft.com/en-my/windows-vista/what-do-the-task-manager-memory-columns-mean

于 2013-06-21T11:29:50.243 に答える