WebClient.OpenWriteCompleted Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando un'operazione asincrona per aprire un flusso per scrivere dati in una risorsa viene completata.
public:
event System::Net::OpenWriteCompletedEventHandler ^ OpenWriteCompleted;
public event System.Net.OpenWriteCompletedEventHandler? OpenWriteCompleted;
public event System.Net.OpenWriteCompletedEventHandler OpenWriteCompleted;
member this.OpenWriteCompleted : System.Net.OpenWriteCompletedEventHandler
Public Custom Event OpenWriteCompleted As OpenWriteCompletedEventHandler
Public Event OpenWriteCompleted As OpenWriteCompletedEventHandler
Tipo evento
Esempio
Nell'esempio di codice seguente viene illustrata l'impostazione di un gestore eventi per questo evento.
void OpenResourceForWriting2( String^ address )
{
WebClient^ client = gcnew WebClient;
Uri ^uri = gcnew Uri(address);
// Specify that the OpenWriteCallback method gets called
// when the writeable stream is available.
client->OpenWriteCompleted += gcnew OpenWriteCompletedEventHandler( OpenWriteCallback2 );
client->OpenWriteAsync( uri, "POST" );
// Applications can perform other tasks
// while waiting for the upload to complete.
}
public static void OpenResourceForWriting2(string address)
{
WebClient client = new WebClient();
Uri uri = new Uri(address);
// Specify that the OpenWriteCallback method gets called
// when the writeable stream is available.
client.OpenWriteCompleted += new OpenWriteCompletedEventHandler(OpenWriteCallback2);
client.OpenWriteAsync(uri, "POST");
// Applications can perform other tasks
// while waiting for the upload to complete.
}
Public Shared Sub OpenResourceForWriting2(ByVal address As String)
Dim client As WebClient = New WebClient()
' Specify that the OpenWriteCallback method gets called
' when the writeable stream is available.
AddHandler client.OpenWriteCompleted, AddressOf OpenWriteCallback2
Dim uri as Uri = New Uri(address)
client.OpenWriteAsync(uri, "POST")
' Applications can perform other tasks
' while waiting for the upload to complete.
End Sub
Nell'esempio di codice seguente viene illustrata un'implementazione di un gestore per questo evento.
void OpenWriteCallback2( Object^ /*sender*/, OpenWriteCompletedEventArgs^ e )
{
Stream^ body = nullptr;
StreamWriter^ s = nullptr;
try
{
body = dynamic_cast<Stream^>(e->Result);
s = gcnew StreamWriter( body );
s->AutoFlush = true;
s->Write( "This is content data to be sent to the server." );
}
finally
{
if ( s != nullptr )
{
s->Close();
}
if ( body != nullptr )
{
body->Close();
}
}
}
private static void OpenWriteCallback2(Object sender, OpenWriteCompletedEventArgs e)
{
Stream body = null;
StreamWriter s = null;
try
{
body = (Stream)e.Result;
s = new StreamWriter(body);
s.AutoFlush = true;
s.Write("This is content data to be sent to the server.");
}
finally
{
if (s != null)
{
s.Close();
}
if (body != null)
{
body.Close();
}
}
}
Private Shared Sub OpenWriteCallback2(ByVal sender As Object, ByVal e As OpenWriteCompletedEventArgs)
Dim body As Stream = Nothing
Dim s As StreamWriter = Nothing
Try
body = CType(e.Result, Stream)
s = New StreamWriter(body)
s.AutoFlush = True
s.Write("This is content data to be sent to the server.")
Finally
If Not s Is Nothing Then
s.Close()
End If
If Not body Is Nothing Then
body.Close()
End If
End Try
End Sub
Commenti
Cautela
WebRequest
, HttpWebRequest
, ServicePoint
e WebClient
sono obsoleti e non è consigliabile usarli per nuovi sviluppi. Usare invece HttpClient.
Questo evento viene generato ogni volta che un'operazione asincrona consente di aprire un flusso usato per inviare dati a una risorsa completata. Queste operazioni vengono avviate chiamando i metodi di OpenWriteAsync.
Il OpenWriteCompletedEventHandler è il delegato per questo evento. La classe OpenWriteCompletedEventArgs fornisce al gestore eventi i dati dell'evento.
Per altre informazioni su come gestire gli eventi, vedere Gestione e generazione di eventi.