LEADTOOLS Image File Support (Leadtools.Codecs assembly)
LEAD Technologies, Inc

LoadAsyncCompleted Event

Example 





Indicates that an asynchronous load operation has been completed. .NET support Silverlight support
Syntax
public event EventHandler<CodecsLoadAsyncCompletedEventArgs> LoadAsyncCompleted
'Declaration
 
Public Event LoadAsyncCompleted As EventHandler(Of CodecsLoadAsyncCompletedEventArgs)
'Usage
 
Dim instance As RasterCodecs
Dim handler As EventHandler(Of CodecsLoadAsyncCompletedEventArgs)
 
AddHandler instance.LoadAsyncCompleted, handler
public event EventHandler<CodecsLoadAsyncCompletedEventArgs> LoadAsyncCompleted
add_LoadAsyncCompleted(function(sender, e))
remove_LoadAsyncCompleted(function(sender, e))

public:
event EventHandler<CodecsLoadAsyncCompletedEventArgs^>^ LoadAsyncCompleted
Event Data

The event handler receives an argument of type CodecsLoadAsyncCompletedEventArgs containing data related to this event. The following CodecsLoadAsyncCompletedEventArgs properties provide information specific to this event.

PropertyDescription
Cancelled (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets a value indicating whether an asynchronous operation has been canceled.
Error (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets a value indicating which error occurred during an asynchronous operation.
FileName (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the file name this asynchronous operation is using. .NET support Silverlight support
Image Gets the Leadtools.RasterImage class instance that is being loaded. .NET support Silverlight support
Stream (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the stream this asynchronous operation is using. .NET support Silverlight support
Uri (Inherited from Leadtools.Codecs.CodecsAsyncCompletedEventArgs)Gets the URI this asynchronous operation is using. .NET support Silverlight support
UserState (Inherited from System.ComponentModel.AsyncCompletedEventArgs)Gets the unique identifier for the asynchronous task.
Remarks

The RasterCodecs class supports loading image files asynchronously using the LoadAsync methods. When calling any of these methods, the caller thread will not be blocked and the method will return instantly with an instance of Leadtools.RasterImage that is in a loading status (RasterImage.IsLoading set to true). You should not use the other properties of this object while the object is in loading status.

When the RasterCodecs object finishes loading the image, the various properties of the Leadtools.RasterImage will be populated with the image information and data and the RasterImage.IsLoading property will be set to false.

It is recommended that you do not poll for the RasterImage.IsLoading property to determine whether the image is finished loaded, instead, subscribe to the LoadAsyncCompleted event to get notification on when the LoadAsync(String,LeadRect,Int32,CodecsLoadByteOrder,Int32,Int32,Object) operation is completed and whether any errors occurred.

The LoadAsyncCompleted event data will also contain the same object returned from LoadAsync so you do not have to keep the original object in your application.

The LoadAsyncCompleted event uses a data argument object of type CodecsLoadAsyncCompletedEventArgs. This class contains the following properties:

Property Description
CodecsLoadAsyncCompletedEventArgs.Uri, CodecsLoadAsyncCompletedEventArgs.Stream and CodecsLoadAsyncCompletedEventArgs.FileName

Contains the URI, stream or file name passed to the method that initialized this asynchronous operation.

Only one of these properties can be a valid value (not a null reference) at any time The property that contains a valid reference depends on what version of LoadAsync method has been called.

For example, if LoadAsync(Uri uri, object userState) is being called, the Uri will contain the same URI passed to the method while Stream and FileName will both be null. If LoadAsync(String fileName, object userState) is being called, the FileName will contain the same file name string value passed to the method while Uri and Stream will both be null and so on.

CodecsLoadAsyncCompletedEventArgs.Image

Contains the Leadtools.RasterImage class instance that contains the image data being loaded. This instance is the same object returned from the LoadAsync method. While the asynchronous operation is running, the value of the RasterImage.IsLoading will be true indicating that the object is being populated with the image information and should not be used. When the asynchronous operation completes, the LoadAsyncCompleted event will fire and Image will contain the final and ready to use object. If an error occurs, this property will be set to null and the object is disposed internally by the toolkit.

CodecsLoadAsyncCompletedEventArgs.Error

Contains any errors that might have occurred during the asynchronous operation. You must check this value when the LoadAsyncCompleted event fires and make sure it does not contain a valid System.Exception object.

CodecsLoadAsyncCompletedEventArgs.Cancelled

Contains a value indicating whether an asynchronous operation has been canceled. For example, by calling CancelAsync when using RasterCodecs.LoadAsync with a URL.

Example
 
Public Sub LoadAsyncCompletedExample()
      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim uri As New Uri(srcFileName)

      Dim codecs As New RasterCodecs()

      ' Now load the image asynchronously
      AddHandler codecs.LoadAsyncCompleted, AddressOf LoadAsyncCompletedExample_LoadAsyncCompleted
      Dim rasterImageObject As Object = codecs.LoadAsync(uri, Nothing)

      ' Notice that the returned rasterImageObject is a RasterImage with IsLoading set to true at this point
      ' The IsLoading will be false (and hence, the object will be usable) when the LoadAsyncCompleteted
      ' fires.
   End Sub

   Private Sub LoadAsyncCompletedExample_LoadAsyncCompleted(ByVal sender As Object, ByVal e As CodecsLoadAsyncCompletedEventArgs)
      If e.Cancelled Then
         Console.WriteLine("User canceled")
      ElseIf Not IsNothing(e.Error) Then
         Console.WriteLine("Error: " + e.Error.Message)
      Else
         ' Everything is OK, get the image
         Dim image As RasterImage = e.Image
         Console.WriteLine("Image at {0} loaded OK, size: {1} by {2}", e.Uri, image.Width, image.Height)
         image.Dispose()
      End If

      ' Unsubscribe to the event and dispose the RasterCodecs object
      Dim codecs As RasterCodecs = DirectCast(sender, RasterCodecs)
      RemoveHandler codecs.LoadAsyncCompleted, AddressOf LoadAsyncCompletedExample_LoadAsyncCompleted
      codecs.Dispose()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void LoadAsyncCompletedExample()
     {
         string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
         Uri uri = new Uri(srcFileName);

         RasterCodecs codecs = new RasterCodecs();

         // Now load the image asynchronously
         codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(LoadAsyncCompletedExample_LoadAsyncCompleted);
         object rasterImageObject = codecs.LoadAsync(uri, null);

         // Notice that the returned rasterImageObject is a RasterImage with IsLoading set to true at this point
         // The IsLoading will be false (and hence, the object will be usable) when the LoadAsyncCompleteted
         // fires.
     }

     private void LoadAsyncCompletedExample_LoadAsyncCompleted(object sender, CodecsLoadAsyncCompletedEventArgs e)
     {
         if (e.Cancelled)
         {
             Console.WriteLine("User canceled");
         }
         else if (e.Error != null)
         {
             Console.WriteLine("Error: " + e.Error.Message);
         }
         else
         {
             // Everything is OK, get the image
             RasterImage image = e.Image;
             Console.WriteLine("Image at {0} loaded OK, size: {1} by {2}", e.Uri, image.Width, image.Height);
             image.Dispose();
         }

         // Unsubscribe to the event and dispose the RasterCodecs object
         RasterCodecs codecs = sender as RasterCodecs;
         codecs.LoadAsyncCompleted -= new EventHandler<CodecsLoadAsyncCompletedEventArgs>(LoadAsyncCompletedExample_LoadAsyncCompleted);
         codecs.Dispose();
     }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

RasterCodecs Class
RasterCodecs Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.