Leadtools.Codecs名前空間 > RasterCodecsクラス :CancelAsyncメソッド |
public void CancelAsync()
'Declaration
Public Sub CancelAsync()
'Usage
Dim instance As RasterCodecs instance.CancelAsync()
public void CancelAsync()
public void cancelAsync(Object operation)
function Leadtools.Codecs.RasterCodecs.CancelAsync()
public: void CancelAsync();
RasterCodecsオブジェクトは、情報を取得して、GetInformationAsync、LoadAsyncとLoadSvgAsyncメソッドを用いることにより非同期で画像ファイルをロードすることをサポートします。
一度にRasterCodecsオブジェクトにつき1つの非同期動作を呼び出すことができます。RasterCodecsオブジェクトが1つ前の非同期動作でビジーかどうか決定するために、IsAsyncBusyプロパティを使います。これは、AsyncWebClientのWebClient.IsBusyプロパティ相当です。
このRasterCodecsで任意の現在の非同期動作をキャンセルするために、CancelAsyncメソッドを使うこともできますオブジェクト。これは、AsyncWebClientの上でWebClient.CancelAsyncを呼び出すこと相当です。
Note:GetInformationAsync、LoadAsyncまたはLoadSvgAsyncがウーリパラメーターをとるバージョンとともにあったとき、UseAsync、AsyncWebClient、IsAsyncBusyとCancelAsyncは適用できるだけです。StringまたはStreamをとるバージョンは、内部的にWebClientオブジェクトを使いません。進捗を確認するか、操作をキャンセルしたいならば、いつものようにLoadImageイベントを使います。
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Color Imports Leadtools.Drawing Imports Leadtools.Svg Public Sub CancelAsyncExample() 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 file asynchronously AddHandler codecs.LoadAsyncCompleted, AddressOf cancelAsyncExample_LoadAsyncCompleted Dim image As RasterImage = codecs.LoadAsync(uri, Nothing) ' Cancel it immediatly, in normal situation, the cancelation will happen ' before the LoadAsync method has a chance to load the file and ' the message "User canceled" will be displayed on the console If codecs.IsAsyncBusy Then codecs.CancelAsync() End If End Sub Private Sub cancelAsyncExample_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 cancelAsyncExample_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 CancelAsyncExample() { string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); Uri uri = new Uri(srcFileName); RasterCodecs codecs = new RasterCodecs(); // Now Load the file asynchronously codecs.LoadAsyncCompleted += new EventHandler<CodecsLoadAsyncCompletedEventArgs>(cancelAsyncExample_LoadAsyncCompleted); RasterImage image = codecs.LoadAsync(uri, null); // Cancel it immediatly, in normal situation, the cancelation will happen // before the LoadAsync method has a chance to load the file and // the message "User canceled" will be displayed on the console if (codecs.IsAsyncBusy) { codecs.CancelAsync(); } } private void cancelAsyncExample_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>(cancelAsyncExample_LoadAsyncCompleted); codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }