WebClient.OpenWriteCompleted Событие
В этой статье
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит, когда асинхронная операция открытия потока для записи данных в ресурс завершается.
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
В следующем примере кода показано, как задать обработчик событий для этого события.
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
В следующем примере кода показана реализация обработчика для этого события.
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
Внимание!
WebRequest
, HttpWebRequest
, ServicePoint
и WebClient
устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.
Это событие вызывается каждый раз, когда асинхронная операция открывает поток, используемый для отправки данных в ресурс. Эти операции запускаются путем вызова методов OpenWriteAsync.
OpenWriteCompletedEventHandler является делегатом для этого события. Класс OpenWriteCompletedEventArgs предоставляет обработчик событий данными о событиях.
Дополнительные сведения об обработке событий см. в обработке и вызове событий.
Применяется к
Продукт | Версии |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |