> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XTaskQueueGetPort

> XTaskQueueGetPort

# XTaskQueueGetPort

Retourne le handle de port de file d'attente de tâches pour le port donné.

## Syntaxe

```cpp theme={null}
HRESULT XTaskQueueGetPort(  
         XTaskQueueHandle queue,  
         XTaskQueuePort port,  
         XTaskQueuePortHandle* portHandle  
)  
```

### Paramètres

*queue*   \_In\_\
Type : XTaskQueueHandle

File d'attente de tâches à partir de laquelle obtenir le port.

*port*   \_In\_\
Type : [XTaskQueuePort](/fr/reference/system/xtaskqueue/enums/xtaskqueueport)

Port à obtenir.

*portHandle*   \_Out\_\
Type : XTaskQueuePortHandle\*

Handle de port de file d'attente de tâches pour le port donné.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

<Note>Il n'est pas sûr d'appeler cette fonction sur un thread urgent. Pour plus d'informations, consultez [Threads urgents](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Les handles de port de file d'attente de tâches appartiennent à la file d'attente de tâches et n'ont pas besoin d'être fermés. Ils sont utilisés lors de la création de files d'attente de tâches composites.

L'exemple suivant crée une file d'attente composite dont les ports de travail et d'achèvement utilisent tous deux le port de travail de la file d'attente d'origine. Une file d'attente de tâches composite est une file d'attente de tâches composée d'éléments d'autres files d'attente. Les files d'attente de tâches composites sont utiles lorsqu'une tâche asynchrone doit en appeler une autre et que l'achèvement de cette tâche est une étape intermédiaire qui ne doit pas gaspiller de cycles sur le thread d'achèvement.

<Note>**SubmitCallback** est une fonction d'assistance définie dans l'exemple de code de la fonction [XTaskQueueSubmitCallback](/fr/reference/system/xtaskqueue/functions/xtaskqueuesubmitcallback).</Note>

```cpp theme={null}
void CreatingCompositeQueue()
{
    XTaskQueueHandle queue;

    HRESULT hr = XTaskQueueCreate(
        XTaskQueueDispatchMode::ThreadPool, 
        XTaskQueueDispatchMode::Manual, 
        &queue);

    if (FAILED(hr))
    {
        printf("failed to create task queue: 0x%x\r\n", hr);
        return;
    }

    XTaskQueuePortHandle workPort;

    // Create a composite queue that uses the work port from
    // another queue for both work and completion ports.

    hr = XTaskQueueGetPort(queue, XTaskQueuePort::Work, &workPort);
    if (FAILED(hr))
    {
        printf("failed to get work port 0x%x\r\n", hr);
        XTaskQueueCloseHandle(queue);
        return;
    }

    XTaskQueueHandle compositeQueue;
    hr = XTaskQueueCreateComposite(workPort, workPort, &compositeQueue);
    if (FAILED(hr))
    {
        printf("failed to create composiute queue 0x%x\r\n", hr);
        XTaskQueueCloseHandle(queue);
        return;
    }

    // Use the queue as needed
    SubmitCallbacks(compositeQueue);

    // Wait a while for the callbacks to run
    Sleep(1000);

    XTaskQueueCloseHandle(compositeQueue);
    XTaskQueueCloseHandle(queue);
}
```

## Configuration requise

**En-tête :** XTaskQueue.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Threads urgents](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[Membres XTaskQueue](/fr/reference/system/xtaskqueue/xtaskqueue_members)\
[Modèle de programmation asynchrone](/fr/build/core-features/common/async/async-programming-model)\
[Conception de la file d'attente de tâches asynchrones](/fr/build/core-features/common/async/async-task-queue-design)


## Related topics

- [XTaskQueueGetPort](/reference/system/xtaskqueue/functions/xtaskqueuegetport.md)
- [XTaskQueuePort](/reference/system/xtaskqueue/enums/xtaskqueueport.md)
- [XTaskQueue](/reference/system/xtaskqueue/xtaskqueue_members.md)
- [XTaskQueueGetCurrentProcessTaskQueue](/reference/system/xtaskqueue/functions/xtaskqueuegetcurrentprocesstaskqueue.md)
- [Async task queue design](/build/core-features/common/async/async-task-queue-design.md)
