> ## 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.

# 방법: 콜백 제출

> 방법: 콜백 제출

## 예제

다음 예에서는 작업 큐의 작업 포트 또는 완료 포트에 콜백을 제출하는 방법을 보여 줍니다. 먼저 작업 콜백을 제출합니다. 그런 다음 작업 콜백의 끝에서 완료 콜백을 제출합니다. 이것이 일반적인 사용법입니다. `SubmitCallbacks` 함수는 이후 시나리오에서 간결성을 위해 사용됩니다.

```c++ theme={null}
void CALLBACK SampleCompletionCallback(void*, bool cancel)
{
    printf("Completion invoked on thread %d. Cancel? %d.\r\n",
    GetCurrentThreadId(), cancel);
}

void CALLBACK SampleWorkCallback(void* context, bool cancel)
{
    printf("Worker invoked on thread %d. Cancel? %d.\r\n",
    GetCurrentThreadId(), cancel);

    XTaskQueueHandle queueFromContext = static_cast<XTaskQueueHandle>(context);

    HRESULT hrCompletion = XTaskQueueSubmitCallback(
        queueFromContext,
        XTaskQueuePort::Completion,
        nullptr,
        SampleCompletionCallback);

    if (FAILED(hrCompletion))
    {
        printf("Error 0x%x submitting completion.\r\n", hrCompletion);
    }
}

void SubmitCallbacks(XTaskQueueHandle queue)
{
    HRESULT hrWork = XTaskQueueSubmitCallback(
        queue,
        XTaskQueuePort::Work,
        queue,
        SampleWorkCallback);

    if (FAILED(hrWork))
    {
        printf("Error 0x%x submitting work.\r\n", hrWork);
    }
}
```

## 참고 항목

[작업 큐 설계](/build/core-features/common/async/async-task-queue-design)


## Related topics

- [방법: 지연된 콜백 사용](/ko/build/core-features/common/async/async-task-queue-design-howto/using-delayed-callbacks.md)
- [이전 패키지 제출로 게임 롤백 방법](/ko/publishing/game-publishing/how-to/how-to-package-rollback.md)
- [방법: 작업 큐 대기자 사용](/ko/build/core-features/common/async/async-task-queue-design-howto/using-task-queue-waiter.md)
- [방법](/ko/services/xbox-services/community/reputation/how-to/index.md)
- [XTaskQueueSubmitCallback](/ko/reference/system/xtaskqueue/functions/xtaskqueuesubmitcallback.md)
