pcclrocks 0 Denunciar post Postado Agosto 5, 2011 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
pcclrocks 0 Denunciar post Postado Agosto 8, 2011 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