Use Control.UseWaitCursor = true instead, this is not a timeout.
If an expensive operation is performed, then Windows will prevail and it will change Cursor.WaitCursor to what it considers necessary. Thus, using Cursor.WaitCursor, it will be either due to the timeout (but not completely sure of it), or because Windows simply requires the right to own the cursor, regardless of its previous state. We also had a similar situation where the Cursor did not behave as expected when performing an expensive task that included third-party PDF converters, but we did not investigate more about the nature of the problem, since this was not a priority.
After a little reading, it turned out that the Hourglass cursor is a bit more complicated than it seems:
.NET WaitCursor: how hard is it to show an hourglass?
Also as a side note: you should use Cursor.Current = Cursors.WaitCursor , as this causes the cursor to instantly switch to a lesson, more information can be found at: fooobar.com/questions/103385 / ...
source share