←Select platform

RunJobAsync Method

Summary

Runs a job asynchronously.

Syntax

C#
VB
Java
C++
public void RunJobAsync( 
   DocumentConverterJob job 
) 
Public Sub RunJobAsync( 
   ByVal job As DocumentConverterJob 
) 
public:  
   void RunJobAsync( 
      DocumentConverterJob^ job 
   ) 
public void runJobAsync(DocumentConverterJob job) 

Parameters

job

The DocumentConverterJob to run. This parameter cannot be null. Use CreateJob to create a valid

DocumentConverterJob object.

Remarks

RunJobAsync will use the thread pool to create a new work item and for running this method. Control will be returned to the user right after the method is called. The JobCompleted event will occur when RunJobAsync finishes running. To run a job synchronously, use RunJob.

After the method finishes and the job is completed, DocumentConverterJob.Status will contain the status of the job and whether it was successful (DocumentConverterJobStatus.Success), completed but with errors (DocumentConverterJobStatus.SuccessWithErrors) or was aborted by the user or due to recoverable errors (DocumentConverterJobStatus.Aborted).

If errors did occur, then DocumentConverterJob.Errors will contain a list of error description values.

The above is correct when the value of DocumentConverterOptions.JobErrorMode is set to DocumentConverterJobErrorMode.Continue (the default) which catches all the exceptions and adds them to the error list. If the mode was set to DocumentConverterJobErrorMode.Abort then exceptions are not caught by the engine and instead delegate up to the calling code as usual.

To use this method, initialize a new DocumentConverterJobData object with the job's parameters (input file name or document, pages, output format, output file name, annotations, etc.), then use CreateJob to create the DocumentConverterJob object passed as job to this method. Finally, call RunJob passing the DocumentConverterJob.

If tracing is enabled using DocumentConverterDiagnostics.EnableTrace, then logging and debugging messages will be sent to any trace listener while the job is running.

The JobStarted event will occur once right after RunJob is called. Then one or more JobOperation events will occur while the job is running with information on the various operations being performed. Finally the JobCompleted will fire once when the job is completed (successfully or not) and right before the internal work item exits.

Call AbortAllJobs to abort all running and pending jobs that was started with RunJobAsync.

Example

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Forms.DocumentWriters; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
using Leadtools.Documents; 
using Leadtools.Caching; 
using Leadtools.Annotations.Core; 
using Leadtools.Forms.Ocr; 
using Leadtools.Documents.Converters; 
 
public void DocumentConverterJobsRunJobAsyncExample() 
{ 
   using (DocumentConverter documentConverter = new DocumentConverter()) 
   { 
      documentConverter.Diagnostics.EnableTrace = true; 
 
      var inFile = Path.Combine(ImagesPath.Path, @"Leadtools.doc"); 
      var outFile = Path.Combine(ImagesPath.Path, @"output.pdf"); 
      var format = DocumentFormat.Pdf; 
      var jobData = DocumentConverterJobs.CreateJobData(inFile, outFile, format); 
      jobData.JobName = "conversion job"; 
 
      var job = documentConverter.Jobs.CreateJob(jobData); 
 
      AutoResetEvent finished = null; 
 
      EventHandler<DocumentConverterJobEventArgs> completed = null; 
      completed = (sender, e) => 
      { 
         if (e.Status == DocumentConverterJobStatus.Success) 
         { 
            Console.WriteLine("Success"); 
         } 
         else 
         { 
            Console.WriteLine("{0} Errors", e.Status); 
            foreach (var error in e.Job.Errors) 
            { 
               Console.WriteLine("  {0} at {1}: {2}", error.Operation, error.InputDocumentPageNumber, error.Error.Message); 
            } 
         } 
 
         var thisJobs = sender as DocumentConverterJobs; 
         thisJobs.JobCompleted -= completed; 
 
         finished.Set(); 
      }; 
 
      documentConverter.Jobs.JobCompleted += completed; 
 
      finished = new AutoResetEvent(false); 
      documentConverter.Jobs.RunJobAsync(job); 
      finished.WaitOne(); 
   } 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Forms.DocumentWriters 
Imports Leadtools.Svg 
Imports Leadtools.Documents 
Imports Leadtools.Caching 
Imports Leadtools.Annotations.Core 
Imports Leadtools.Forms.Ocr 
Imports Leadtools.Documents.Converters 
Imports LeadtoolsDocumentsConvertersExamples.LeadtoolsExamples.Common 
 
Public Sub DocumentConverterJobsRunJobAsyncExample() 
   Using documentConverter As New DocumentConverter() 
      documentConverter.Diagnostics.EnableTrace = True 
 
      Dim inFile As String = Path.Combine(ImagesPath.Path, "Leadtools.docx") 
      Dim outFile As String = Path.Combine(ImagesPath.Path, "output.pdf") 
      Dim format As DocumentFormat = DocumentFormat.Pdf 
      Dim jobData As DocumentConverterJobData = DocumentConverterJobs.CreateJobData(inFile, outFile, format) 
      jobData.JobName = "conversion job" 
 
      Dim job As DocumentConverterJob = documentConverter.Jobs.CreateJob(jobData) 
 
      Dim finished As AutoResetEvent = Nothing 
 
      Dim completed As EventHandler(Of DocumentConverterJobEventArgs) = Nothing 
      completed = 
         Sub(sender, e) 
            If e.Status = DocumentConverterJobStatus.Success Then 
               Console.WriteLine("Success") 
            Else 
               Console.WriteLine("{0} Errors", e.Status) 
               For Each errorItem As DocumentConverterJobError In e.Job.Errors 
                  Console.WriteLine("  {0} at {1}: {2}", errorItem.Operation, errorItem.InputDocumentPageNumber, errorItem.Error.Message) 
               Next 
            End If 
 
            Dim thisJobs As DocumentConverterJobs = TryCast(sender, DocumentConverterJobs) 
            RemoveHandler thisJobs.JobCompleted, completed 
 
            finished.Set() 
 
         End Sub 
 
      AddHandler documentConverter.Jobs.JobCompleted, completed 
 
      finished = New AutoResetEvent(False) 
      documentConverter.Jobs.RunJobAsync(job) 
      finished.WaitOne() 
   End Using 
End Sub 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Documents.Converters Assembly