Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pcclrocks

[Resolvido] Lentidão a executar thread

Recommended Posts

Boa tarde.

Estou a criar uma DLL que funciona como eu quero, o problema é que está muito lenta. Em testes na consola, demora 1 segundo, mas quando uso a DLL numa aplicação ela demora cerca de 30 segundos em média a executar.

A diferença de código entre os testes na consola e a DLL usada na aplicação são as seguintes:

 

static void startDll()
       {
           //Ler o ficheiro XML de configurações 
           ConnectionsSettings cnn = new ConnectionsSettings();
           cnn.LoadXMLSettings();

           Central ast = new Central(cnn._Exemplo, cnn._Exemplo1, cnn._Exemplo2);
           ast.Number += new Central.AstEventHandler(printResult);  //printResult é o metodo que devolve o valor
           ast.Connect();

//na console application uso este código para ficar á espera que o evento seja disparado.
           ConsoleKeyInfo cki;
       x:
           cki = Console.ReadKey();
           if (cki.Key == ConsoleKey.Escape)
           {
               ast.Disconnect();
           }
           else
           {
               goto x;
           }

//na dll final uso esta linha para ficar à espera. 
           //while (true) ;
       }

 

Existe alguma forma de trocar o:

while (true) ;

 

por outra linha que seja mais rápida a devolver o número que pretendo?

O tempo de espera é mesmo demasiado.

Em testes na consola já usei o "while(true); e também ficava lento.

 

Obrigado em avanço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi!!!!

           while (!true)
           {
               System.Threading.Thread.Sleep(250); 
           }

 

isto faz com que não esteja a usar demasiados recursos do CPU.

 

Podem ver a resposta aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.