Процесс подачи заявления .NET CF не прекращается. Мы используем компонент Windows Media Player на базе AxHost - PullRequest
0 голосов
/ 16 февраля 2010

Проблемы с проигрывателем Windows Media в приложении на основе .NET CF бесконечны. В одном из приложений .NET CF 3.5 мы используем элементы управления ActiveX для воспроизведения видео. Код для элемента управления ActiveX медиаплеера взят из этой статьи MSDN . У него было мало проблем с утечкой памяти, но ошибки разобрались с помощью этой статьи .

Новая проблема - когда мы закрываем приложение, оно закрывает пользовательский интерфейс, но процесс выполняется в фоновом режиме. Это видно на вкладке Процессы диспетчера задач. Этот процесс зависания делает систему совершенно нестабильной. После воспроизведения видео на несколько человек вся система зависает и перезагружается.

Пожалуйста, помогите мне понять, почему процесс закрывается в фоновом режиме после закрытия и какое исправление в коде полностью завершает процесс.

1 Ответ

0 голосов
/ 17 февраля 2010

Во-первых, вы уверены, что завершили свое приложение в коде (и этот код выполняется), или пользователь нажимает X в правом верхнем углу (для устройств с сенсорным экраном). Я спрашиваю, потому что X не закрывает приложение по умолчанию - оно только минимизирует его (если вы не предпримете действия, чтобы сделать больше самостоятельно и т. Д.).

Предполагая, что это не проблема, сложно ответить на основании этой ограниченной информации, но я предполагаю, что есть объект ActiveX, который не был должным образом выпущен. Рассматриваемый объект может быть вашим собственным приложением, если вы передаете ссылку на свое приложение используемому вами элементу управления ActiveX (и если вы не говорите другому элементу управления об освобождении вас). Поэтому я бы посоветовал пройтись по вашему коду и провести инвентаризацию всех COM-объектов, где они созданы, где они AddRef и т. Д., И убедиться, что вы выпускаете и / или устанавливаете их в null (возможно, с дополнительными очистка самих объектов, например, сначала сказать, чтобы они перестали играть, и т. д.).

P.S. Ваш пост был немного двусмысленным в том, что проблема в том, что приложение не закрывается, когда должно, или оно вызывает зависание устройства после намеренного запуска в течение некоторого времени ...

...