Evaluar y enviar comentarios
MSDN
MSDN Library
System.Net
 BeginGetContext (Método)
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
HttpListener.BeginGetContext (Método)

Nota: este método es nuevo en la versión 2.0 de .NET Framework.

Empieza a recuperar de forma asincrónica una solicitud de entrada.

Espacio de nombres: System.Net
Ensamblado: System (en system.dll)

Visual Basic (Declaración)
Public Function BeginGetContext ( _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Visual Basic (Uso)
Dim instance As HttpListener
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginGetContext(callback, state)
C#
public IAsyncResult BeginGetContext (
    AsyncCallback callback,
    Object state
)
C++
public:
IAsyncResult^ BeginGetContext (
    AsyncCallback^ callback, 
    Object^ state
)
J#
public IAsyncResult BeginGetContext (
    AsyncCallback callback, 
    Object state
)
JScript
public function BeginGetContext (
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

Parámetros

callback

Un delegado de AsyncCallback que hace referencia al método que se invoca cuando está disponible una solicitud de cliente.

state

Un objeto definido por el usuario que contiene información sobre la operación. Este objeto se pasa al delegado de callback cuando la operación ha terminado.

Valor devuelto

Un objeto IAsyncResult que indica el estado de la operación asincrónica.
Tipo de excepciónCondición

HttpListenerException

Se ha producido un error en una llamada de función de Win32. Compruebe la propiedad ErrorCode de la excepción para determinar la causa de la excepción.

InvalidOperationException

Este objeto no se ha iniciado o actualmente está detenido.

ObjectDisposedException

Este objeto está cerrado.

El método BeginGetContext inicia una llamada asincrónica (sin bloqueo) para recibir las solicitudes de cliente de entrada. Antes de llamar a este método, llame al método Start y agregue por lo menos un prefijo de identificador URI para el que desee realizar escuchas, agregando las cadenas URI al objeto HttpListenerPrefixCollection devuelto por la propiedad Prefixes.

La operación asincrónica debe finalizar con una llamada al método EndGetContext. Normalmente, el método lo invoca el delegado de callback.

Este método no se bloquea mientras se realiza la operación. Para obtener una solicitud de entrada y bloquearse hasta que la operación finalice, llame al método GetContext.

Para obtener información detallada sobre cómo utilizar el modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Notas para los llamadores Este miembro envía la información de seguimiento al habilitar el seguimiento de la red en su aplicación. Para obtener más información, vea Seguimiento de la red.

En el ejemplo de código siguiente se muestra cómo utilizar el método BeginGetContext para especificar un método de devolución de llamada que controlará las solicitudes de cliente de entrada.

C#
public static void NonblockingListener(string [] prefixes)
{
    HttpListener listener = new HttpListener();
    foreach (string s in prefixes)
    {
        listener.Prefixes.Add(s);
    }
    listener.Start();
    IAsyncResult result = listener.BeginGetContext(new AsyncCallback(ListenerCallback),listener);
    // Applications can do some work here while waiting for the 
    // request. If no work can be done until you have processed a request,
    // use a wait handle to prevent this thread from terminating
    // while the asynchronous operation completes.
    Console.WriteLine("Waiting for request to be processed asyncronously.");
    result.AsyncWaitHandle.WaitOne();
    Console.WriteLine("Request processed asyncronously.");
    listener.Close();
}

En el ejemplo de código siguiente se implementa un método de devolución de llamada.

C#
public static void ListenerCallback(IAsyncResult result)
{
    HttpListener listener = (HttpListener) result.AsyncState;
    // Call EndGetContext to complete the asynchronous operation.
    HttpListenerContext context = listener.EndGetContext(result);
    HttpListenerRequest request = context.Request;
    // Obtain a response object.
    HttpListenerResponse response = context.Response;
    // Construct a response.
    string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
    // Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length;
    System.IO.Stream output = response.OutputStream;
    output.Write(buffer,0,buffer.Length);
    // You must close the output stream.
    output.Close();
}

Windows 98, Windows Server 2003, Windows XP Media Center, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker