UploadFileCompletedEventHandler 委托
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示将用来处理 UploadFileCompleted 的 WebClient 事件的方法。
public delegate void UploadFileCompletedEventHandler(System::Object ^ sender, UploadFileCompletedEventArgs ^ e);
public delegate void UploadFileCompletedEventHandler(object sender, UploadFileCompletedEventArgs e);
type UploadFileCompletedEventHandler = delegate of obj * UploadFileCompletedEventArgs -> unit
Public Delegate Sub UploadFileCompletedEventHandler(sender As Object, e As UploadFileCompletedEventArgs)
参数
- sender
- Object
事件源。
示例
下面的代码示例演示如何异步上传文件。
// Sample call: UploadFileInBackground("http://www.contoso.com/fileUpload.aspx", "data.txt")
void UploadFileInBackground( String^ address, String^ fileName )
{
System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false );
WebClient^ client = gcnew WebClient;
Uri ^uri = gcnew Uri(address);
String^ method = "POST";
// Specify that that UploadFileCallback method gets called
// when the file upload completes.
client->UploadFileCompleted += gcnew UploadFileCompletedEventHandler( UploadFileCallback );
client->UploadFileAsync( uri, method, fileName, waiter );
// Block the main application thread. Real applications
// can perform other tasks while waiting for the upload to complete.
waiter->WaitOne();
Console::WriteLine( "File upload is complete." );
}
// Sample call: UploadFileInBackground("http://www.contoso.com/fileUpload.aspx", "data.txt")
public static void UploadFileInBackground(string address, string fileName)
{
System.Threading.AutoResetEvent waiter = new System.Threading.AutoResetEvent(false);
WebClient client = new WebClient();
Uri uri = new Uri(address);
string method = "POST";
// Specify that that UploadFileCallback method gets called
// when the file upload completes.
client.UploadFileCompleted += new UploadFileCompletedEventHandler(UploadFileCallback);
client.UploadFileAsync(uri, method, fileName, waiter);
// Block the main application thread. Real applications
// can perform other tasks while waiting for the upload to complete.
waiter.WaitOne();
Console.WriteLine("File upload is complete.");
}
' Sample call: UploadFileInBackground("http:' www.contoso.com/fileUpload.aspx", "data.txt")
Public Shared Sub UploadFileInBackground(ByVal address As String, ByVal fileName As String)
Dim waiter As System.Threading.AutoResetEvent = New System.Threading.AutoResetEvent(False)
Dim client As WebClient = New WebClient()
Dim method As String = "POST"
Dim uri as Uri = New Uri(address)
' Specify that that UploadFileCallback method gets called
' when the file upload completes.
AddHandler client.UploadFileCompleted, AddressOf UploadFileCallback
client.UploadFileAsync(uri, method, fileName, waiter)
' Block the main application thread. Real applications
' can perform other tasks while waiting for the upload to complete.
waiter.WaitOne()
Console.WriteLine("File upload is complete.")
End Sub
上传完成后,将调用以下方法。
void UploadFileCallback( Object^ /*sender*/, UploadFileCompletedEventArgs^ e )
{
System::Threading::AutoResetEvent^ waiter = dynamic_cast<System::Threading::AutoResetEvent^>(e->UserState);
;
try
{
String^ reply = System::Text::Encoding::UTF8->GetString( e->Result );
Console::WriteLine( reply );
}
finally
{
// If this thread throws an exception, make sure that
// you let the main application thread resume.
waiter->Set();
}
}
private static void UploadFileCallback(Object sender, UploadFileCompletedEventArgs e)
{
System.Threading.AutoResetEvent waiter = (System.Threading.AutoResetEvent)e.UserState; ;
try
{
string reply = System.Text.Encoding.UTF8.GetString(e.Result);
Console.WriteLine(reply);
}
finally
{
// If this thread throws an exception, make sure that
// you let the main application thread resume.
waiter.Set();
}
}
Private Shared Sub UploadFileCallback(ByVal sender As Object, ByVal e As System.Net.UploadFileCompletedEventArgs)
Dim waiter As System.Threading.AutoResetEvent = CType(e.UserState, System.Threading.AutoResetEvent)
Try
Dim reply As String = System.Text.Encoding.UTF8.GetString(e.Result)
Console.WriteLine(reply)
Finally
' If this thread throws an exception, make sure that
' you let the main application thread resume.
waiter.Set()
End Try
End Sub
注解
创建 UploadFileCompletedEventHandler 委托时,需要标识将处理该事件的方法。 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。 有关事件处理程序委托的详细信息,请参阅 处理和引发事件。
扩展方法
GetMethodInfo(Delegate) |
获取指示指定委托表示的方法的对象。 |