> ## 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-CA/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>Cette fonction ne peut pas être appelée en toute sécurité sur un thread sensible au temps. Pour plus d'informations, consultez [Threads sensibles au temps](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 de parties 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 devrait 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-CA/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 sensibles au temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[Membres de XTaskQueue](/fr-CA/reference/system/xtaskqueue/xtaskqueue_members)\
[Modèle de programmation asynchrone](/fr-CA/build/core-features/common/async/async-programming-model)\
[Conception de la file d'attente de tâches asynchrones](/fr-CA/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)
