Курсор не вращается до конца процесса в приложении Windows Mobile
У меня есть кнопка в моей форме, и когда я нажимаю кнопку, она получает данные из разных таблиц через веб-сервис.
Я пишу код ниже
private void imageButtonWorkOrder_Click(object sender, EventArgs e)
{
try
{
Cursor.Current = Cursors.WaitCursor;
//Code for to get data from 10 tables
}
catch
{
}
finally
{
Cursor.Current = Cursors.Default;
}
}
Но проблема, с которой я сталкиваюсь, заключается в том, что курсор не вращает конец процесса. Это просто прекращается через некоторое время.
Пожалуйста, предложите мне, как решить эту проблему.
Заранее спасибо, Балу
1 ответ
Это не легко сказать, основываясь на том, что мало мы знаем. Одна вещь, которая может вызвать ваше поведение, заключается в том, что если этот раздел вашего кода:
//Code for to get data from 10 tables
Когда-нибудь установите курсор обратно на Default, тогда он не будет ждать вашего блока finally. Любые работающие потоки могут также изменить его обратно - Курсор не для каждого потока, и это не считается счетчиком.
Как дополнительное наблюдение, получение данных в обработчике кликов - особенно когда требуется достаточное время, чтобы оправдать ожидание курсора, не является хорошей практикой. Даже если мы не будем рассматривать разделение интересов (которого, вероятно, нет в этом коде), весь пользовательский интерфейс будет казаться "заблокированным" для пользователя. Вам гораздо удобнее получать данные в фоновом потоке и сигнализировать о пользовательском интерфейсе, когда это будет сделано, чтобы он мог заполнять пользовательский интерфейс в этот момент.