# DisplayCancelableProgressBar(string, string, float)

> Displays or updates a progress bar that has a cancel button.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.5/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static bool DisplayCancelableProgressBar(string title, string info, float progress)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[float]\(https\://learn.microsoft.com/dotnet/api/system.single)):&#x20;

### Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Remarks

The window title sets to `title` and the info sets to `info`. Set progress should to a value between 0.0 and 1.0, where 0 indicates nothing is loaded and 1.0 indicates loading is complete.

This is useful when you perform a long blocking operation in an Editor script, and want to notify the user of progress. Use this method for long operations that make the Editor non-responsive. For long operations that happen in the background, use the [Progress](/engine/6000.5/script-reference/unityeditor/progress.md) class instead.

A return value of true indicates that the user pressed the **Cancel** button. When the return value is true, you must stop the task that is in progress. After you display the progress bar, use [EditorUtility.ClearProgressBar](/engine/6000.5/script-reference/unityeditor/editorutility/clearprogressbar.md) to clear it.

Additional Resources: [EditorUtility.DisplayProgressBar](/engine/6000.5/script-reference/unityeditor/editorutility/displayprogressbar.md), [EditorUtility.ClearProgressBar](/engine/6000.5/script-reference/unityeditor/editorutility/clearprogressbar.md), and [Progress](/engine/6000.5/script-reference/unityeditor/progress.md).

![EditorUtilityDisplayCancelableProgressBar (DisplayCancelableProgressBar(string, string, float))](/api/media?file=/engine/6000.5/media/images/EditorUtilityDisplayCancelableProgressBar.png)

*Cancelable progress bar in the Editor.*

### Examples

```csharp
using System.Threading;
using UnityEditor;
using UnityEngine;

// Shows a cancellable progress bar for the specified number of seconds.
public class EditorUtilityDisplayCancelableProgressBar : EditorWindow
{
    public float secs = 5f;
    [MenuItem("Examples/Progress Bar Usage")]
    static void Init()
    {
        var window = GetWindow(typeof(EditorUtilityDisplayCancelableProgressBar));
        window.Show();
    }

    void OnGUI()
    {
        secs = EditorGUILayout.Slider("Time to wait:", secs, 1.0f, 20.0f);
        if (GUILayout.Button("Display bar"))
        {
            var step = 0.1f;
            for (float t = 0; t < secs; t += step)
            {
                if (EditorUtility.DisplayCancelableProgressBar("Cancelable", "Doing some work...", t / secs))
                    break;
                // Normally, some computation happens here.
                // This example uses Sleep.
                Thread.Sleep((int)(step * 1000.0f));
            }
            EditorUtility.ClearProgressBar();
        }
    }
}
```
