Курсор не вращается до конца процесса в приложении Windows Mobile - PullRequest
0 голосов
/ 09 марта 2012

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

Я пишу код ниже

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;            
    }
}

Но проблема, с которой я сталкиваюсь, заключается в том, что курсор не вращается в конце процесса. Это просто прекращается через некоторое время.

Подскажите, пожалуйста, как решить эту проблему.

Заранее спасибо, Balu

1 Ответ

1 голос
/ 09 марта 2012

Нелегко сказать, исходя из того, что мало мы знаем.Единственное, что может вызвать ваше поведение, это то, что если этот раздел вашего кода:

//Code for to get data from 10 tables

Когда-нибудь вернет курсор на значение по умолчанию, тогда он не будет ждать вашего блока finally.Любой работающий поток может также изменить его обратно - Курсор не для каждого потока, и он не подсчитывает ссылки.

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

...