in reply to Cursor in TK

$top->Busy(-recurse => 1); # call your subroutine $top->Unbusy;
If your subroutine may die, then it's better to have the subroutine call in an eval { }, otherwise your application will stay unresponsive. With newer Perl/Tks (>=804) you can use this shortcut instead:
$top->Busy(\&your_subroutine, -recurse => 1);