Problema com Hyperthreading e Threads fora de ordem

8 respostas
L

Pessoal,

eu fiz um aplicativo para imprimir em uma dessas impressoras de códigos de barra mas, como o programa permite que várias impressões sejam feitas em seguida, colocando o valor inicial e o final, no decorrer da impressão as etiquetas saem fora de ordem.

Como faço para forçar a execução do código em apenas uma thread?

8 Respostas

L

Mais uma coisa…

vale lembrar que eu não posso usar o /affinity já que este programa será executado em muitos computadores diferentes.

nbluis

cara, acho que cada um deve enviar para algum tipo de fila e dai um outro servico faz essa impressão pra ti … mas a estrutura tem que ver como se encaixa na aplicação…

L

eu envio para fila…

só que como eu envio diversas etiquetas, este envio acaba sendo fora de ordem (por causa da segunda thread)…

ViniGodoy

Se a aplicação é multi-thread, não há como garantir a ordem, a menos que você crie alguma fila de prioridades. Cada pedido de impressão deve ir numerado com a ordem que ele deve aparecer.

Ou então, use uma única thread.

L

Mas é isso mesmo que eu quero saber, como faço para forçar o uso de uma única thread?

L

Alguém???

nbluis

Cara, tu pode até fazer multithread, porem com uma thread apenas que faz a impressão, dai tu envia os objetos a serem impressos para ela e ela trata a ordem de chegada. pode utilizar metodos sincronizados também para entrega,.

Valeu…

ViniGodoy

Olha, para responder como passar de várias para uma só thread, teríamos que conhecer todo o seu algoritmo.

Você pode fazer a thread de impressão ter uma fila, e colocar um campo “ordem” no pedido de impressão. Essa thread deveria esperar pedidos e só imprimi-los quando a ordem estiver correta…

Criado 7 de março de 2007
Ultima resposta 7 de mar. de 2007
Respostas 8
Participantes 3