光标在Windows Mobile应用程序中不会旋转到Process的结尾

时间:2012-03-09 06:00:39

标签: c# windows-mobile windows-mobile-6 windows-mobile-6.5

我的表单中有一个按钮,当我单击按钮时,它将通过webservice从不同的表中获取数据。

我正在编写以下代码

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 个答案:

答案 0 :(得分:1)

根据我们所知道的一点,说起来并不容易。可能导致您行为的一件事是,如果您的代码的这一部分:

//Code for to get data from 10 tables

永远将光标设置回Default,然后它不会等待你的finally块。运行的任何工作线程也可以将其更改回来 - 光标不是每个线程,并且它不是引用计数。

作为一个侧面观察,在点击处理程序中获取大量数据 - 特别是当需要足够的时间来保证等待光标时,这不是一个好习惯。即使我们不关注问题的分离(这段代码可能缺乏),整个UI也会显示为“锁定”给用户。您可以更好地将数据放在后台线程中,并在完成后向UI发出信号,以便在此时可以进行UI填充。