Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Sto scrivendo un server di gioco, per le connessioni uso tcpclient e tcplistener.
Il problema è che per controllare ci sono connessioni in attesa utilizzo un ciclo infinito che però usa costantemente il 25% del calcolo del processore, per ovviare a questo ho temporaneamente usato un thread.sleep ma mi chiedevo se ci fosse un altro modo per non perderne in velocità.
Qui il codice attuale.
Codice sorgente - presumibilmente C# / VB.NET
while (true)
{
Thread.Sleep(100);
if (listener.Pending())
{
Client cl = new Client(listener.AcceptTcpClient());
}
}
EDIT: E per quest'altro ciclo come potrei risolvere?
Codice sorgente - presumibilmente C# / VB.NET
while (client.Connected)
{
if (client.Available > 0)
{
react();
}
}
Ultima modifica effettuata da Exit93 il 09/02/2011 alle 12:03
// AcceptTcpClient è bloccante: quando c'è ritorna
Client cl = new Client(listener.AcceptTcpClient());
}
Grazie, funziona alla perfezione! non sapevo fosse bloccante, cmq ho aggiunto un altro ciclo che usa tanta cpu, come potrei risolverlo secondo te? - Exit93 - 09/02/11 11:37