Jump to content
leo2012

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

Recommended Posts

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?

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.