# async.thread (Compartido)

> Ejecuta una función en un hilo async nuevo, en el acto. La llamada vuelve cuando la función termina o hace su primera pausa, como con `async.wait`.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Compartido
- **Categoría**: Temporizadores y asíncrono
- **URL**: https://wiki.mymp.gg/es/async.thread

## Sintaxis

```lua
any async.thread(function func [, function callback = nil])
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `func` | `function` | Función que ejecuta el hilo. |
| `callback` | `function` | Se llama con los valores que devolvió `func`, cuando termina sin error. *(por defecto: `nil`)* |

## Retorno

El hilo (una corrutina de Lua), para usar con `async.cancel` y `async.status`.

Un error dentro del hilo se registra en el log con su traza de pila. Los hilos de un recurso terminan cuando se detiene.

## Ejemplo

```lua
async.thread(function()
    for i = 3, 1, -1 do
        outputDebugString("comenzando en " .. i)
        async.wait(1000)
    end
    return "ya"
end, function(result)
    outputDebugString(result)
end)
```

## Ver también

- [async.wait (Compartido)](https://wiki.mymp.gg/es/async.wait.md): Pausa el hilo async actual durante ms milisegundos. El resto del juego sigue en marcha.
- [async.mutex (Compartido)](https://wiki.mymp.gg/es/async.mutex.md): Ejecuta una función en un hilo async nuevo, como async.thread, pero no empieza mientras otro hilo iniciado desde la misma línea del código, con la misma key, siga en marcha.
- [async.cancel (Compartido)](https://wiki.mymp.gg/es/async.cancel.md): Detiene un hilo async de este recurso. Un hilo en pausa termina en el acto; llamada desde el propio hilo, se detiene ahí mismo.
- [async.status (Compartido)](https://wiki.mymp.gg/es/async.status.md): Indica en qué estado está un hilo async de este recurso.
