The Priority property can be used to control the processor
usage, memory and network bandwidth allocated for file transfers. One
of the following values may be specified:
Value |
Description |
filePriorityBackground |
This priority significantly reduces the memory, processor
and network resource utilization for the transfer. It is
typically used with worker threads running in the background
when the amount of time required perform the transfer is not
critical. |
filePriorityLow |
This priority lowers the overall resource utilization for
the transfer and meters the bandwidth allocated for the
transfer. This priority will increase the average amount of
time required to complete a file transfer. |
filePriorityNormal |
The default priority which balances resource utilization
and transfer speed. It is recommended that most applications
use this priority. |
filePriorityHigh |
This priority increases the overall resource utilization
for the transfer, allocating more memory for internal
buffering. It can be used when it is important to transfer the
file quickly, and there are no other threads currently
performing file transfers at the time. |
filePriorityCritical |
This priority can significantly increase processor, memory
and network utilization while attempting to transfer the file
as quickly as possible. If the file transfer is being performed
in the main UI thread, this priority can cause the application
to appear to become non-responsive. No events will be generated
during the transfer. |
The filePriorityNormal priority balances resource
utilization and transfer speed while ensuring that a single-threaded
application remains responsive to the user. Lower priorities reduce
the overall resource utilization at the expense of transfer speed.
For example, if you create a worker thread to download a file in the
background and want to ensure that it has a minimal impact on the
process, the filePriorityBackground value can be used.
Higher priority values increase the memory allocated for the
transfers and increases processor utilization for the transfer. The
filePriorityCritical priority maximizes transfer speed at the
expense of system resources. It is not recommended that you increase
the file transfer priority unless you understand the implications of
doing so and have thoroughly tested your application. If the file
transfer is being performed in the main UI thread, increasing the
priority may interfere with the normal processing of Windows messages
and cause the application to appear to become non-responsive. It is
also important to note that when the priority is set to
filePriorityCritical, normal progress events will not be
generated during the transfer.