Suponhamos que você tem uma rotina da sua aplicação que demora muito tempo e durante esse tempo você não quer que o usuário interaja com o seu sistema e que para ele seja apresentada a ampulheta do windows.
Já encontrei muitas respostas para esse problema porem apenas uma realmente me serviu... Tentei desde trocar a propriedade do ponteiro na sessão até do proprio formulário e por muitas vezes não tive sucesso algum. Encontrei esta solução que me serviu como uma luva e é de muito fácil implementação.
Crie uma classe ex: HourGlass.cs A implementação é muito mais simples usando o comando using (new HourGlass()){} você consegue implementar de forma rápida e simples... Veja um exemplo: Todo o código que estiver dentro do using (new HourGlass()) será executado e durante esse tempo a interface da aplicação ficará indisponível.
Esta implementação funciona onde as outras falham por confiar inteiramente no windows e fazendo a chamada diretamente no sistema operacional na user32.dll e não usando os métodos conhecidos do .net. |
Matérias >