Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre el método BeginConnect y el método ConnectAsync de la clase Socket

La diferencia entre el método BeginConnect y el método ConnectAsync de la clase Socket

Este es un problema de C#.

El prototipo de la función es el siguiente:

público IAsyncResult BeginConnect(

EndPoint remotoEP,

devolución de llamada AsyncCallback,

Estado del objeto

)

public bool ConnectAsync(

SocketAsyncEventArgs e

)

Son todos comenzó con la solicitud asincrónica remota para la conexión del host. BeginConnect puede tener un método de devolución de llamada delegado AsyncCallback para manejar operaciones posteriores, pero ese método de devolución de llamada debe llamar al método EndConnect. Cuando una aplicación llama a BeginConnect, un subproceso independiente ejecuta el método de devolución de llamada especificado y bloquea EndConnect hasta que la conexión del socket sea exitosa o se produzca una excepción. Alternativamente, puede usar WaitOne si desea que el hilo original se bloquee después de llamar al método BeginConnect. Cuando desee que el hilo original continúe ejecutándose, llame al método Set de ManualResetEvent en el método de devolución de llamada.

Para que ConnectAsync reciba una notificación al finalizar, debe crear un método de devolución de llamada que implemente el delegado EventHandler y conectar la devolución de llamada a SocketAsyncEventArgs. Evento completo.

Entonces, en general, estos dos métodos logran básicamente lo mismo, dependiendo de los hábitos del usuario. MSDN proporciona un ejemplo del uso de BeginConnect anterior como referencia.