Domanda

Esistono modelli / modelli / guide che posso seguire per la progettazione di un server multithread? Non riesco a trovare nulla di terribilmente utile online attraverso le mie ricerche su Google.

Il mio programma avvierà un thread per ascoltare le connessioni usando TcpListener. Ogni connessione client verrà gestita dal proprio thread IClientHandler. Il server avvolgerà clientHandler.HandleClient in un delegato, chiamerà BeginInvoke e poi smetterà di preoccuparsene.

Devo anche essere in grado di chiudere in modo pulito il thread di ascolto, cosa che non trovo molti esempi di online.

Suppongo che un po 'di lock / AutoResetEvents / threading magic combinati con l'asinciante BeginAceptTcpClient e EndAcceptTcpClient mi porteranno lì, ma quando si tratta di codice di rete, per me è stato fatto tutto. Quindi devo credere che ci sia solo uno schema là fuori che posso seguire e non essere totalmente confuso dalla miriade di custodie angolari multithread che non riesco mai a sembrare perfetto.

Grazie.

È stato utile?

Soluzione

Stranamente potresti trovare qualcosa su un incarico di informatica, CSC 512 Programmazione assegnazione 4: Server multi-thread con pattern . Anche se è voodoo in C ++ ma la teoria è abbastanza comprensibile per qualcuno che può fare C #.

Puoi anche ottenere l'intero elenco di belle letture nella pagina principale .

Altri suggerimenti

Dai un'occhiata a questa domanda precedente:

How minimizzi il numero di thread utilizzati in un'applicazione server tcp?

Non è strettamente specifico per C #, ma ha dei buoni consigli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top