### Constructor

# Ide Task new

#### Declaration

    IdeTask*
    ide_task_new (
      GObject* source_object,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description

Creates a new `IdeTask`.

`IdeTask` is similar to `GTask` but provides some additional guarantees such that by default, the source object, task data, and unused results are guaranteed to be finalized in the `GMainContext` associated with the task itself.

Available since: | 3.32

#### Parameters

`source_object` | `GObject`
| A `GObject` or `NULL`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`cancellable` | `GCancellable`
| A `GCancellable` or `NULL`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`callback` | `GAsyncReadyCallback`
| A `GAsyncReadyCallback` or `NULL`.
| The argument can be `NULL`.
`user_data` | `gpointer`
| Closure data for `callback`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.

#### Return value

Returns: | `IdeTask`
| An `IdeTask`.
| The caller of the function takes ownership of the data, and is responsible for freeing it.