Winform multi-thread con più moduli figlio utilizzando socket

1

Sviluppo un'applicazione con due opzioni principali raggruppate in groupBox nella forma principale. La prima opzione è eseguire il server con un comportamento specifico, ad esempio, scelgo il protocollo TCP, digito l'indirizzo IP, il numero di porta e dopo che faccio clic sul pulsante Esegui che genera moduli indipendenti con questo server specifico. La seconda opzione è client che è analogo alla prima opzione. Client e server possono inviare / ricevere informazioni tramite le prese.

La mia domanda è quale sia il modo corretto di costruire questa applicazione? Cerco di mettere tutti i server e i client su thread indipendenti, ma mi chiedo se sia una buona soluzione perché trovo una domanda simile dove non esiste una risposta multithread.

    
posta ElConrado 12.05.2015 - 00:28
fonte

1 risposta

0

Modifica: vedo che il post è vecchio, tuttavia lo farò comunque.

A mio modesto parere, penso che il modo corretto sarebbe di progettarlo in tre parti.

  1. Server.cs - la logica che sta dietro al server
  2. Client.cs - la logica dietro al client
  3. La tua interfaccia utente.

Saranno necessari solo due thread, uno su cui l'UI viene eseguito su cui non devi preoccuparti e uno su cui è in esecuzione il Server o il Client (di cui devi preoccuparti). Hai due modi per gestire il lavoro multi-thread. O sull'interfaccia utente (verifica di business cross-thread, invocazione, ecc.) O nella classe stessa. Personalmente preferisco quest'ultimo.

Spunti di riflessione:

Personalmente mi piace attivare eventi a cui l'interfaccia utente può iscriversi e reagire di conseguenza. Tendo ad usare AsyncOperation.Post () per gestire le cose con thread incrociati. Guarda in questo: link

    
risposta data 14.07.2015 - 17:04
fonte

Leggi altre domande sui tag