Usuário com melhor resposta
Interrompendo Metodo

Pergunta
-
Boa dia.
Essa é a minha primeira vez no fórum e sou iniciante em programação C#
Em um determinado método o programa entra em um loop infinito onde constantemente é feita uma leitura num servidor ftp e existindo arquivos lá é feito o download desses arquivos.
Até ai tudo bem, funciona certinho consigo fazer os downloads. O que eu queria é, clicando num botao "Cancelar" esse processo fosse interrompido e a partir dali eu pudesse ou retornar ao loop ou sair dele.
Alguém poderia me ajudar ?
Obrigado
Alvaro Vieira
Respostas
-
olá alvaro, o que você pode fazer é:
deixar a sua aplicação em 1 Thread separada ( técnica de programação assícrona )
private Thread ThreadFtp; public void BtnIniciar_Click( null, null) { ThreadFtp = new Thread( SeuMetodo ); Thread.Start(); } public void BtnCancelar_Click( null, null) { Thread.Abort(); }
seu método você aplica o seu loop em ftp, é interessante pois chamando de forma assícrona ele divide o uso dos core dos seus processadores
Abraços,
Afonso
- Sugerido como Resposta Vitor Mendes sexta-feira, 8 de fevereiro de 2013 13:30
- Marcado como Resposta Alvaro Vieira sexta-feira, 8 de fevereiro de 2013 13:37
Todas as Respostas
-
olá alvaro, o que você pode fazer é:
deixar a sua aplicação em 1 Thread separada ( técnica de programação assícrona )
private Thread ThreadFtp; public void BtnIniciar_Click( null, null) { ThreadFtp = new Thread( SeuMetodo ); Thread.Start(); } public void BtnCancelar_Click( null, null) { Thread.Abort(); }
seu método você aplica o seu loop em ftp, é interessante pois chamando de forma assícrona ele divide o uso dos core dos seus processadores
Abraços,
Afonso
- Sugerido como Resposta Vitor Mendes sexta-feira, 8 de fevereiro de 2013 13:30
- Marcado como Resposta Alvaro Vieira sexta-feira, 8 de fevereiro de 2013 13:37
-
-
por padrão os WindowsForms vem bloqueados a serem acessados por threads assícronas
use:
CheckForIllegalCrossThreadCalls = false; //atributo do form: Form.CheckForIllegalCrossThreadCalls = false;
para conseguir alterar campos da tela.
- Sugerido como Resposta Samuel Rodrigues dos Anjos sexta-feira, 8 de fevereiro de 2013 16:20
-
-