Что-то вроде этого несколько полезно:
class WaitCursor : IDisposable
{
public WaitCursor()
{
Cursor.Current = Cursors.WaitCursor;
}
public void Dispose()
{
Cursor.Current = Cursors.Default;
}
}
Это позволяет вам использовать блоки "using" для возврата к курсору по умолчанию, даже если у вас есть исключение или возврат:
public Foo()
{
using (var c = new WaitCursor())
{
// do long-running stuff
// when we exit the using block, the cursor will return to the default state
}
}