Attualmente sto imparando C# da uno sfondo java. Per bagnarmi i piedi ho deciso di creare una semplice applicazione di posta SMTP. E ho imparato molto rapidamente che C# offre supporto per socket sincroni e asincroni.Vantaggio della connessione socket sincrona vs asincrona TCP
Da quello che posso vedere, non vi è alcun reale vantaggio nell'usare un socket sincrono rispetto a un asincrono poiché quest'ultimo non blocca e quindi non richiede di creare ogni volta un nuovo thread. Inoltre, non sembra che ci sia un notevole overhead nell'usare l'uno o l'altro.
Quindi la mia domanda è questa, c'è un vantaggio nell'usare un socket sincrono o è meglio restare semplicemente asincroni nella maggior parte dei casi?
Tutto dipende dalla situazione, direi nel 99% dei casi che useresti asincrono e nel raro 1% sincrono dove vuoi assicurarti che l'email sia spedita di sicuro e che quel blocco di codice sia finito e continua con il programma dopo. Inoltre, se crei i tuoi thread per questo scopo utilizzerai anche sincrono. – Vajura
Ho pensato che fosse il caso. Ma ho anche immaginato che probabilmente potresti fare la stessa cosa anche con asincrono. O mi sbaglio? –
@MuhammadHijazi Puoi, hai ragione. In pratica, c'è ** nessuna ** differenza tra l'uso di socket asincroni o di sincronizzazione di sorta. – dcastro