jonsmau Posted July 19, 2012 at 03:00 PM Report #469254 Posted July 19, 2012 at 03:00 PM (edited) Olá. Estou com um problema em C# para windows phone (com o VS2010). Tenho o seguinte código: ... AtualizaInterface(); messagebox.show("Foi atualizada!"); ... Mas o que acontece é que ao executar o programa, este mostra primeiro a mensagem "Foi atualizada!" (congelando o ecrã) antes de a função "AtualizaInterface(); alterar o ecrã. Já tentei fazer uma pausa de alguns segundos entre as duas linhas, mas não resolve o problema. O que eu queria era que o programa parasse enquanto as atualizações de interface estão a decorrer. E só depois mostrasse o conteúdo do messagebox. Já tentei usar: - Thread.Sleep(5000); - e mesmo uma função feita por mim que faz um ciclo infinito durante x segundos. Mas não resulta. Mostra sempre primeiro o conteúdo da message.box e só depois é que a interface se altera. Ajuda? Obrigado. 🙂 Edited July 19, 2012 at 03:01 PM by jonsmau
petvetbr Posted July 19, 2012 at 11:38 PM Report #469309 Posted July 19, 2012 at 11:38 PM O que acontece neste AtualizaInterface()? Você talvez poderia dispara o messagebox de dentro dele ou disparar um evento quando a atualização terminasse para então mostrar a messagebox. Precisaria ver o código para ter certeza se isto funcionaria, mas é algo que você pode estudar para ver se funciona. Fernando Lage Bastos - MCP/MCTS/MCPD
jonsmau Posted July 20, 2012 at 12:13 AM Author Report #469320 Posted July 20, 2012 at 12:13 AM Dei a volta ao problema de outra forma. Não ficou a 100%. Dentro do "AtualizaInterface()", são alteradas algumas imagens (é alterado o source das imagens consoante uns determinados valores) existentes na View (XAML). Para chamar o messagebox, ou lançar um evento no fim deste método ia distorcer um pouco a lógica do programa. Tinha de chamar o método com parâmetros e a maior parte das vezes não ha necessidade de messagebox. Mas o que esta a acontecer é que realmente primeiro aparece o pop-up do messagebox e só depois de clicar 'OK' é que as imagens são alteradas na View.
petvetbr Posted July 20, 2012 at 12:21 AM Report #469321 Posted July 20, 2012 at 12:21 AM Existe uma pergunta semelhante, e uma aparente solução aqui: http://stackoverflow.com/questions/8505277/messagebox-displaying-too-early-c-sharp Fernando Lage Bastos - MCP/MCTS/MCPD
jonsmau Posted July 20, 2012 at 12:33 AM Author Report #469322 Posted July 20, 2012 at 12:33 AM É isso, resolveu! Obrigado!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now