Salut
J'ai écrit un petit serveur Web en C# avec une fonction ecoute pour traiter les demande de connection par les clients :
Code :
- public void ecoute(){
- IPAddress locale = IPAddress.Parse("127.0.0.1" );
- TcpListener listener = new TcpListener(locale,port);
- listener.Start();
- _running = true;
- while(_running){
- try{
- if(listener.Pending()) {
- TcpClient connection = listener.AcceptTcpClient();
- try{
- service(connection);
- }catch(Exception ex){
- intf.ecrireLog("Erreur de service " + ex.Message);
- }
- connection.Close();
- }
- }catch(Exception ex){
- _running = false;
- }
- }
- }
|
La méthode ecoute est lancée dans un Thread à l'intérieur de l'objet serveur :
Code :
- Thread tService = new Thread(new ThreadStart(ecoute));
- tService.start();
|
Tout fonctionne...à part le fait que dés que je lance tService.start(), j'ai pratiquement 100% de temps CPU pris par l'appli, que je sois en Windows.Form ou en console, et quelle que soit la priorité du thread tService (normal, lowest..)
Quelqu'un pourrait m'aider ?