在mvvp app中过程结束之前,小时玻璃不会显示

时间:2011-11-05 09:50:19

标签: c# wpf

我一直在开发自定义ms-word应用程序的代码,并从Exchange服务器获取数据并显示它。所以,直到数据来到ms-word我想显示“忙”小时玻璃符号。但是执行从按钮处理程序中退出(几分之一秒)后,繁忙的符号就会丢失。

我在ms-word自定义功能区中有一个名为“Receive”的按钮,所以当我按下然后需要加载忙符号并且直到数据从交换到ms-word然后必须保留符号。 / p>

我使用以下代码: -

public class MyCursor : IDisposable
{     
private Cursor _preappCursor;      
public MyCursor ()     
{         
_preappCursor= Mouse.OverrideCursor;          
Mouse.OverrideCursor = Cursors.Wait;     
}      
#region IDisposable Members     
 public void Dispose()     
{         
Mouse.OverrideCursor = _preappCursor;     
}      
#endregion 
} 


using(new MyCursor ()) 
{     
//Receive side bar calls the exchange code here and display in ms-word
} 

2 个答案:

答案 0 :(得分:1)

你在GUI线程上进行长时间运行吗?如果是这样,GUI可能没有响应,这将导致UI故障。因此,请确保在后台线程上运行长时间运行的操作。

答案 1 :(得分:0)

使用后台工作程序从Exchange Server检索数据。封装BackgroundWorker_DoWork()中的功能。这次将光标更改为忙碌并保留。
后台工作程序完成其作业后,将光标更改回“_preappCursor”。在BackgroundWorker_RunWorkerCompleted()中封装此功能。
有关使用Wpf。

的后台工作程序的更多信息,请Look into this article

希望这会对你有所帮助。