LEADTOOLS (Leadtools assembly)
LEAD Technologies, Inc

MaximumThreadCount Property

Example 





Gets or sets the maximum number of threads used during processing. .NET support Silverlight support
Syntax
public static int MaximumThreadCount {get; set;}
'Declaration
 
Public Shared Property MaximumThreadCount As Integer
'Usage
 
Dim value As Integer
 
RasterDefaults.MaximumThreadCount = value
 
value = RasterDefaults.MaximumThreadCount
public static int MaximumThreadCount {get; set;}
 get_MaximumThreadCount();
set_MaximumThreadCount(value);
public:
static property int MaximumThreadCount {
   int get();
   void set (    int value);
}

Property Value

An System.Int32 value that represents the maximum number of threads used during processing. Must be a value greater than or equals to 0. Default value is the number of CPUs/Cores in the current machine (System.Environment.ProcessorCount).
Remarks

Note: this property is currently supported by LEADTOOLS for Silverlight only.

Using two threads with a dual core machine or two CPUs will increase the processing speed significantly if the processing supports parallel processing. Currently only the LEADTOOLS JPEG2000 Encoder and Decoder are using this property. More LEADTOOLS encoders/decoders may use this property in the future.

Possible values are:

Value Description
0

The toolkit will pick the proper number of running threads based on the number of CPUs/Cores of the current machines. Note: the toolkit will calculate this value internally and set it. Getting the value of this property will never return 0.

1 Use one thread only. In this case, the toolkit will not create extra threads for the processing, instead, all operations will be performed in the main thread.
2 Use two threads. The toolkit will create a maximum of two threads for processing if needed.
N Use N threads. The toolkit will create a maximum of N threads for processing if needed.

Values less than zero will be rejected. Large values, more than the number of CPU/Cores, will not increase performance and might cause resource usage overload which could lead to processing failure.

The MaximumThreadCount property is a global resource used by all LEADTOOLS and is not thread-safe. Make sure to use property thread synchronization if required.

Example
 
Private Sub RasterDefaultsMaximumThreadCountExample()
      Using codecs As New RasterCodecs
         'This is a speed test using multithreading JPEG2000 load, to conduct this test correctly the machine has to have multiple CPUs/Cores.
         Dim image As RasterImage

         'This is just load the binaries.
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"))

         'Load with MaximumThreadCount equal to the number of CPUs/Cores first.
         RasterDefaults.MaximumThreadCount = 0
         Dim time As DateTime = DateTime.Now
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"))
         Console.WriteLine(" JPEG2000 load time {0} / thread {1}", DateTime.Now - time, RasterDefaults.MaximumThreadCount)

         'Load with MaximumThreadCount equal one.
         RasterDefaults.MaximumThreadCount = 1
         time = DateTime.Now
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"))
         Console.WriteLine(" JPEG2000 load time {0} / thread {1}", DateTime.Now - time, RasterDefaults.MaximumThreadCount)
         image.Dispose()
      End Using
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
private void RasterDefaultsMaximumThreadCountExample()
   {
      using (RasterCodecs codecs = new RasterCodecs())
      {
         //This is a speed test using multithreading JPEG2000 load, to conduct this test correctly the machine has to have multiple CPUs/Cores.
         RasterImage image;
         //This is just load the binaries.
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"));

         // Load with MaximumThreadCount equal to the number of CPUs/Cores first.
         RasterDefaults.MaximumThreadCount = 0;
         DateTime time = DateTime.Now;
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"Image1.j2k"));
         Console.WriteLine(" JPEG2000 load time {0} / thread {1}", DateTime.Now - time, RasterDefaults.MaximumThreadCount);

         // Load with MaximumThreadCount equal one.
         RasterDefaults.MaximumThreadCount = 1;
         time = DateTime.Now;
         image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Image1.j2k"));
         Console.WriteLine(" JPEG2000 load time {0} / thread {1}", DateTime.Now - time, RasterDefaults.MaximumThreadCount);
         image.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

RasterDefaults Class
RasterDefaults Members

 

 


Products | Support | Contact Us | Copyright Notices

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