Увеличение использования памяти при переходе между страницами — WPF — Kinect SDK 1.7

Я создаю настольное приложение, и навигация будет осуществляться с помощью Kinect. (Я использую новые взаимодействия, представленные в 1.7 SDK).

Я следил за онлайновой tutorial, и я также заметил, что несколько пользователей жалуются на эту проблему с памятью.

Чтобы иметь возможность перемещаться с помощью руки, в вашей форме должна быть область Kinect, и вам необходимо привязать датчик к этой области.

// Bind the sensor chooser's current sensor to the KinectRegion 
var regionSensorBinding = new Binding("Kinect") { Source = this.sensorChooser }; 
BindingOperations.SetBinding(this.kinectRegion, KinectRegion.KinectSensorProperty, regionSensorBinding);

Я сузил проблему с памятью до этих двух строк.

Теперь каждый раз, когда я меняю страницы:

(Application.Current.MainWindow.FindName("_mainFrame") as Frame).Source = new Uri("MainMenu.xaml", UriKind.Relative);

Использование памяти увеличивается (что понятно), но никогда не уменьшается.

Этот раздел кода находится на каждой новой странице, чтобы привязать мой датчик к области kinect этой страницы.

Любые идеи о том, почему это может быть или как я могу это исправить?

PS: я использую KinectSensorChooser, как в учебнике, если это имеет значение.


person hypse    schedule 04.07.2013    source источник


Ответы (1)


Наконец-то я нашел способ решить проблему с привязкой.

Я только что очистил привязку, когда ухожу со страницы:

BindingOperations.ClearBinding(this.kinectRegion, KinectRegion.KinectSensorProperty);

Если кто-нибудь столкнется с этой проблемой памяти, посетите эту страницу, чтобы увидеть, как WPF на самом деле обрабатывает переходы между страницами, что на самом деле было моей настоящей проблемой.

person hypse    schedule 16.07.2013