LEADTOOLS画像ファイルサポート(Leadtools.Codecsアセンブリ)

フレームを表示

UseAsyncメソッド








非同期動作のために使われるWebClientオブジェクトを作成します。
構文
public void UseAsync()
'Declaration
 
Public Sub UseAsync() 
'Usage
 
Dim instance As RasterCodecs
 
instance.UseAsync()
public void UseAsync()
 function Leadtools.Codecs.RasterCodecs.UseAsync()
public:
void UseAsync(); 
解説

RasterCodecsオブジェクトは、情報を取得して、GetInformationAsyncLoadAsyncLoadSvgAsyncmethodsを用いることにより非同期で画像ファイルをロードすることをサポートします。これらのメソッドは操作を実行する内部のWebClientオブジェクトを使います、そして、このオブジェクトはこれらのメソッドに最初の呼び出しの上で自動的に作成されて、AsyncWebClientプロパティを通してアクセスできます。

手動でWebClientオブジェクトを作成する(たとえば、そのイベントのどれにでもサブスクライブするか、任意の読込み操作を呼び出す前に、資格情報を設定します)ことが目的であるならば、オブジェクトを作成して、その動作を変更して、それから、GetInformationAsyncLoadAsyncまたはLoadSvgAsyncを呼び出すためにUseAsyncを呼び出すことができます。

Note:GetInformationAsyncまたはLoadAsyncウーリパラメーターをとるバージョンとともにあったとき、UseAsyncAsyncWebClientIsAsyncBusyCancelAsyncは適用できるだけです。StringまたはStreamをとるバージョンは、内部的にWebClientオブジェクトを使いません。進捗を確認するか、操作をキャンセルしたいならば、いつものようにLoadImageイベントを使います。

サンプル

このサンプルは、非同期動作のためにRasterCodecsオブジェクトにより用いられるWebClientオブジェクトを作成するために、UseAsyncを使います。そのWebClientオブジェクトのキャッシュポリシーを変更して、画像を非同期にロードします。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg

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

   ' The RasterCodecs.AsyncWebClient is Nothing first
   Debug.Assert(Not IsNothing(codecs.AsyncWebClient))

   ' Force the RasterCodecs object to create it
   codecs.UseAsync()

   ' Change the Cache policy
   codecs.AsyncWebClient.CachePolicy = New System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.CacheOnly)

   ' Now Load the file asynchronously
   AddHandler codecs.LoadAsyncCompleted, AddressOf useAsyncExample_LoadAsyncCompleted
   Dim image As RasterImage = codecs.LoadAsync(uri, Nothing)
End Sub

Private Sub useAsyncExample_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
      ' Get the image
      Dim image As RasterImage = e.Image
      Console.WriteLine("Image loaded asynchronously: Size = {0} by {1}", 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 useAsyncExample_LoadAsyncCompleted
   codecs.Dispose()
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;

      
public void UseAsyncExample()
{
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
   Uri uri = new Uri(srcFileName);
   RasterCodecs codecs = new RasterCodecs();

   // The RasterCodecs.AsyncWebClient is null first
   Debug.Assert(codecs.AsyncWebClient == null);

   // Force the RasterCodecs object to create it
   codecs.UseAsync();

   // Change the Cache policy
   codecs.AsyncWebClient.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.CacheOnly);

   // Now Load the file asynchronously
   codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(useAsyncExample_LoadAsyncCompleted);
   RasterImage image = codecs.LoadAsync(uri, null);
}

private void useAsyncExample_LoadAsyncCompleted(object sender, CodecsLoadAsyncCompletedEventArgs e)
{
   if (e.Cancelled)
   {
      Console.WriteLine("User canceled");
   }
   else if (e.Error != null)
   {
      Console.WriteLine("Error: " + e.Error.Message);
   }
   else
   {
      // Get the image
      RasterImage image = e.Image;
      Console.WriteLine("Image loaded asynchronously: Size = {0} by {1}", 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>(useAsyncExample_LoadAsyncCompleted);
   codecs.Dispose();
}

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

ターゲットプラットホーム

参照

参照

RasterCodecsクラス
RasterCodecsメンバ