yschmitzz Posted June 17, 2012 at 12:55 AM Report Share #463364 Posted June 17, 2012 at 12:55 AM (edited) to com um aplicativo em xaml queria saber como faço para co BacgroundWorker acessar componentes do aplicativo xaml (botao, progressbar) pq quando tento acessar diz q o componente pertence a outra excecução, e se eu tentar criar um objeto da classe principal, para usar na classe q esta o backgroundWorker, ele da uma exception dizendo algo relacionado a infinitos loops, como se quando iniciase o backgroundWorker ele reiniciase a clae principal e inicia de novo o BackgroundWorker e assim infinitamente, como posso acessar os componentes? por exemplo, na casse principal, vai ter os componentes e iniciara os metodos ex: class Main public Main() { Metodos METODOS = new Metodos(); BG1.iniciarBackGround(); BG2.iniciarBackGround(); botaoOK.IsEnable = METODOS.getIsEnable(); nessa caso como o main termina primeiro que os outros processos, o botaoOK nao desablita e habilita, ele pega o primeiro valor que esta, mesmo se algum outro processo jogar um outro valor para setIsEnable() nao vai adiantar nada, pq a classe principal ja foi lida, o botao OK teria que ser alterado nos outros procesos, mas da erro dizendo que nao pertence a esse processo Edited June 17, 2012 at 01:02 AM by yschmitzz Link to comment Share on other sites More sharing options...
petvetbr Posted June 17, 2012 at 04:03 AM Report Share #463378 Posted June 17, 2012 at 04:03 AM Você precisa cruzar a informação entre as treads usando os métodos Invoke ou BeginInvoke, existem vários tutoriais de como fazer isto, mas separei um link abaixo que é bem direto e simples: http://elegantcode.com/2009/07/03/wpf-multithreading-using-the-backgroundworker-and-reporting-the-progress-to-the-ui/ 1 Report Fernando Lage Bastos - MCP/MCTS/MCPD Link to comment Share on other sites More sharing options...
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