Suppose you have the following method
public void UploadFile(string path)
{
try
{
//... uploads the file to the server
}
catch(Exception ex)
{
// ... error handling
}
}
Suppose you are using it in a web service, your requirement is to give an immediate response, but you also need to upload the file
asynchronously (the file resides on the server) , the user won't consume it soon, he/she only needs the upload.
1) Declare a method delegate, eg:
public delegate void UploadFileDelegate(string path);
2)
Invoke it properly
[WebMethod]
public bool GetFile(string path)
{
try
{
UploadFileDelegate uid = UploadFile;
IAsyncResult rsl = uid.BeginInvoke(path, null, null);
return true;
}
catch(Exception ex)
{
return false;
}
}
This will help you to launch a bunch of operations without being unresponsive, you can implement error notifications of course, you can poll, or wait for the procedure to complete at a certain point, launch multithreaded tasks... and so on.