Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

leo2012

[Resolvido] Existe uma maneira de "pausar" a BackgroundWork?

Mensagens Recomendadas

leo2012

Bom, tenho a seguinte situação: Em

BackgroundWorker1_DoWork

coloquei

For i = 0 To lista.Items.Count - 1

, cada item percorrido nessa lista eu adiciono 1 a uma contagem. Dentro do FOR tenho o seguinte código

If contagem.text = 5 then
Timer1.Start() 'esse timer, é apenas para fazer contagem regressiva para voltar a percorrer a lista
else
contagem = contagem +1
Enf If

Minha intenção é a seguinte, percorrer 5 itens, pausar um tempo de acordo com o timer, e voltar a percorrer a partir de onde parou, o problema aqui é que o IF está dentro do FOR, então quando chega a 5 ele pára, inicia o timer, mas não reinicia de onde parou, inicia tudo novamente a partir do primeiro item da lista. Gostaria de ajuda, uma solução para eu poder "Pausar" o BackgroundWorker, ou "Lembrar" onde parou na lista. Já tentei salvar o valor index do FOR, mas ele salva o último item sempre, não aquele que parou. Alguma solução?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Deves, em primeiro lugar, questionar o propósito do backgroundworker.

Se a função está tão intimamente ligada a uma listbox (presumo), porque razão está a ser computada em outra thread?

De qualquer forma, o BackgroundWorker aceita um parametro do tipo Object, para passares o que quiseres para dentro.

Se criares uma classe wrapper para enviares a lista e o índice, podes alterar o fluxo como te for mais conveniente.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.