Мне очень сложно отлаживать / исправлять приложение.
Вкратце: - Я создал приложение типа «волшебник», которое начинается с того, что пользователь делает фотографию (используя общий диалог для фотографий).
Если пользователь пытается использовать окно ввода текста (SIP) (маленькое окно ввода с клавиатуры) после того, как фотография сделана, цикл событий, кажется, зависает - событие не обрабатывается или задерживается на некоторое время.
Если пользователь не делает снимок, SIP-клавиатура отлично работает.
Это происходит только на некоторых моих устройствах. В частности, это не проблема MC65, но проблема ES400.
Похоже, что цикл обработки событий приложения запутан из-за того, как я показываю формы и фотографирую.
Если создано простое тестовое приложение с единственной формой, содержащей кнопку (обработчик событий делает снимок) и текстовое поле, принимающее ввод. Это нормально работает. Но это всего лишь приложение с одной формой, которое больше ничего не делает.
Когда я совмещаю фотосъемку с отображением формы (делая «волшебника»), дела идут плохо.
Интересно, какой цикл событий я должен запустить?
По сути, пользователь делает снимок, а затем просматривает некоторые формы (я скрываю одну форму и показываю другую, когда они нажимают кнопку «Далее»).
Form.Show вызывается из основной формы после того, как снимок сделан, а затем у меня есть что-то вроде:
while(UserNotFinished)
{
Application.DoEvents()
}
Где UserNotFinished
- это флаг, установленный моим мастером / формами после нажатия кнопки «отправить».
Я буду рад предоставить больше кода, но не уверен, что будет полезно.
Я новичок в разработке C # и CF (много лет C ++ / Win32)
Что действительно сбивает с толку, так это то, что это работает на одном устройстве, но не работает на другом. Фактически аппарат полностью зависает. Он завершает соединение activesync, и иногда мне приходится выполнять полный сброс, вынув аккумулятор.
GetMessage
иDispatchMessage
в цикле (это то, что вы здесь делаете)? Я предполагаю, что вы этого не сделаете. Попробуйте взглянуть на это с точки зрения вашего опыта работы с Win32. - person ctacke   schedule 18.10.2011