# ProgressMonitor Class

> Represents the progress of an operation.

- Product: Adobe PDF Library 21
- Language: .NET Framework
- Version: APDFL21.0.0PlusP1e
- HTML page: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/ProgressMonitor
- Version index: https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/llms.txt

```csharp
class ProgressMonitor : SystemIDisposable
```

**Namespace:** `Datalogics::PDFL`

**Inherits from:** `SystemIDisposable`

## Description

Represents the progress of an operation.

The class can display a dialog if a process will take time, and the Progress method can indicate how long the process will last.

**Referenced by:** [`Document`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/Document.md), [`PDFOptimizer`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/PDFOptimizer.md), [`SignDoc`](https://docs.datalogics.com/apdfl21/DotNetFramework/APDFL21.0.0PlusP1e/class/SignDoc.md)

## Constructors

### ProgressMonitor

```csharp
Datalogics.PDFL.ProgressMonitor.ProgressMonitor()
```

*constructor*

Creates a new ProgressMonitor with duration and current value initialized to zero.

## Methods

### BeginOperation

```csharp
virtual void Datalogics.PDFL.ProgressMonitor.BeginOperation()
```

**Returns:** `void`

Initializes the progress monitor and displays it with a current value of zero. This method will be called first when the progress monitor is used.

### Dispose

```csharp
void Datalogics.PDFL.ProgressMonitor.Dispose()
```

**Returns:** `void`

### EndOperation

```csharp
virtual void Datalogics.PDFL.ProgressMonitor.EndOperation()
```

**Returns:** `void`

Draws the progress monitor with its current value set to the progress monitor's duration (a full progress monitor), then removes the progress monitor from the display.

### GetCurrentValue

```csharp
virtual int Datalogics.PDFL.ProgressMonitor.GetCurrentValue()
```

**Returns:** `int`

The progress monitor's current value.

Gets the current value of the progress monitor.

The allowed value ranges from 0 (empty) to the value passed to SetDuration.

For example, if the progress monitor's duration is 10, the current value must be between 0 and 10, inclusive.

### GetDuration

```csharp
virtual int Datalogics.PDFL.ProgressMonitor.GetDuration()
```

**Returns:** `int`

The maximum value the progress monitor is allowed to have, as set by SetDuration.

Gets the progress monitor's duration.

### SetCurrentValue

```csharp
virtual void Datalogics.PDFL.ProgressMonitor.SetCurrentValue(int currentValue)
```

**Parameters**

- `currentValue` (`int`): The progress monitor's current value.

**Returns:** `void`

Sets the current value of the progress monitor and updates the display. The allowed value ranges from 0 (empty) to the value passed to SetDuration.

For example, if the progress monitor's duration is 10, the current value must be between 0 and 10, inclusive.

### SetDuration

```csharp
virtual void Datalogics.PDFL.ProgressMonitor.SetDuration(int duration)
```

**Parameters**

- `duration` (`int`): The maximum value the progress monitor will be allowed to have.

**Returns:** `void`

Sets the value that corresponds to a full progress monitor display. The progress monitor is subsequently filled in by setting its current value. This method will be called before setting the progress monitor's current value.

### SetText

```csharp
virtual void Datalogics.PDFL.ProgressMonitor.SetText(string text)
```

**Parameters**

- `text` (`string`): The UTF-8 encoded text string to display.

**Returns:** `void`

Display a UTF-8 text string in the progress monitor.
