3
respostas

ShowDialog + While

Boa tarde, Preciso chamar um ShowDialog em um projeto WPF Window, o meu problema é:

eu sei que o ShowDialog interrompe a execução da aplicação até ela ser fechada... porem dentro dessa classe eu tenho um metodo com um while que fica alimentando um Label dentro desse Dialog. Como eu posso resolver isso ? Preciso suspender a aplicação esperando a interação do usuario porem preciso que esse while fique rodando e atualizando meu Dialog isso é possivel ?

3 respostas

Bom.. eu posso estar falando besteira ou não.. sou novo por aqui, então, minha sugestão pelo que entendi o que você precisa é que um label no seu dialog seja alimentado por um outro lugar, por que não colocar nesse dialog um timer e esse timer fazer o que o seu while que alimenta faz ???? como disse não sei bem o que precisa ou não entendi direito, o que é mais provável, mas eu tentaria colocar esse timer no form que está usando como dialog para poder fazer essa alimentação... Espero que uma luz mais intensa apareça e tire sua dúvida de outra maneira mais correta, mas quem sabe isso não lhe ajuda a pensar em outra maneira também..

Opa eai Ricardo tudo joia? Entao.. o timer nao resolveria pois depende da interacao do usuario e a string vem de fatores externos.. eu imagino que uma lista de action na msm thread resolva mas acho muito poucos exemplos na net... uma coisa q achei bem bosta do .net eh a comunidade desunida diferentes das soluções open source

Tu pode usar um thread pra controlar o estado da mensagem e capturar as pending changes da tua label. Sendo que o thread irá controlar de forma assíncrona a mensagem da label:

this.DialogResult = DialogResult.OK; this.Close();

Outra solução é simplesmente capturar os pending changes da label, fechar o dialog e depois commitar a alteração do estado da label.