У меня странная проблема с Windows Phone 7.1 API.Я пытаюсь написать приложение для отправки Touch-Delta с сенсорного экрана для перемещения указателя мыши на настольном ПК.Я использую UDP-сокеты, но у меня есть некоторые проблемы с производительностью.
Отправка udp-сообщений, кажется, останавливается на 0,5-1,0 секунды каждые ~ 0,5 секунды или около того.Я не отправляю огромные объемы данных, и я тоже их регулирую.Моя последняя попытка найти причину оказалась неожиданной.
При наличии отдельного потока с циклом while, который продолжает посылать случайные данные, все работает гладко и нормально.Но когда я начинаю касаться экрана WP7-мобиля, у меня появляются странные икоты.Я удалил всех слушателей на событиях касания для целей отладки, и я больше ничего не делаю в своем приложении, затем отправляю эти данные на UDP-сокет.Но почему так зависает, когда я провожу пальцем по экрану?Это делает невозможным создание такого приложения.
Я слышал, что манипуляция касанием должна быть перенесена в специальный поток, это включено в обновление Beta2 WP7.1?
Код выглядит примерно так:
new Thread(() =>
{
while (true)
{
_event.Reset();
_socket.SendToAsync(_args);
_event.WaitOne();
Thread.Sleep(5);
}
}).Start();
Дескриптор события устанавливается при завершении SendToAsync.Таким образом, он отправляет данные udp каждые 5 мс.Он работает нормально (я могу получать с постоянной и быстрой скоростью), пока я не касаюсь и не перетаскиваю палец на экране телефона.Затем я начинаю получать заморозки на 1 секунду через равные промежутки времени.Очень странно, так как я запускаю UDP-стрельбу в отдельном потоке.Не перегружен ли процессор телефона при манипуляциях с его обработкой?Может ли это быть причиной икоты?
Обновление
Я перефразировал и обновил этот вопрос в другой ветке, чтобы сделать его немного более понятным:
Низкая производительность UDP с Windows Phone 7.1 (Mango)