multithreading - C# TcpListener.BeginAccept and ObjectDisposedException -


i encounter ugly socket management pattern in c# have catch exception when want stop or close socket...

i handle sockets objectdisposedexception don't pop!

i wondering if code ok

private tcplistener server; private bool listening;  private void initialize() {      this.listening = true;     this.server = new tcplistener(ip, port);     this.server.beginaccepttcpclient(this.acceptsocket, null); }  private void acceptsocket(iasyncresult result) {      if (listening) this.server.endaccepttcplistener(result);     else ; //nothing or maybe cleaning if necessary? }  private void stoplistening() {      this.listening = false;     this.server.stop(); } 

as may know, stop method trigger asynccallback "acceptsocket" while underlying socket closed objectdisposedexception thrown if endaccepttcplistener called... here, endaccepttcplistener never called if callback triggered tcplistener.stop!

so, know happens if don't call endaccepttcplistener since msdn says must don't want ugly exception if can prevent it!

if it's required endaccept know if have solution manage socket stop , close avoid stupid exception!!


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -