Jump to content
scorch

Pausar uma thread até ser "acordada" outravez pela thread principal

Recommended Posts

scorch

Boas, eu estou com uma dúvida. Eu preciso de parar, numa thread aparte criada por mim, a execução da mesma até que a thread principal acabe de processar uma parte, parte essa que será precisa numa parte posterior da thread aparte. Basicamente quero que a thread pare, e depois a thread principal a acorde. Estive a pesquisar, e pelo que li, os métodos Suspend() e Resume() são deprecated.

Cumps,

Scorch


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
softklin

Podes usar semáforos:

http://wiki.portugal-a-programar.org/dev_net:vb.net:semaforos

Crias dois semáforos, um para cada thread, e cada um controla o semáforo da outra thread. Não percebi bem como estás a fazer, mas talvez até com 1 semáforo consigas fazer isso.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
scorch

Isto é tipo: A thread aparte está a correr um ciclo, mas a certa altura tem de parar para a thread principal "fazer o seu trabalho". Depois a thread principal diz à thread aparte que pode continuar. Vou ver os semáforos.

Já agora, se eu fizer um RaiseEvent na thread principal, enquanto a thread aparte está parada, e a seguir disser para a thread aparte continuar, ele só vai executar essa acção depois dos eventos terem todos sido executados, certo? :)


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
softklin

Fui pesquisar um pouco, e ao que parece a chamada ao RaiseEvent é síncrona, por tanto, sim, a ordem de paragem da thread só deve surtir efeitos após a chamada dos eventos.

http://www.pcreview.co.uk/forums/raiseevent-synchronous-asynchronous-vbulletin-net-t1412325.html


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
scorch

Obrigado. Era nisso que eu tinha dúvidas. :thumbsup:

PS: Quanto ao tópico em si, resolvi por usar semáforos. :thumbsup:


PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

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.