# subWorker Types

{% hint style="info" %}
**Good to know**

The images in this section are taken from the [Workers Fundamentals](/getting-started/example-projects.md) example project.
{% endhint %}

## Statically-Linked subWorkers

Whenever you add a Worker to another Worker using the [Create/Add Worker](/workers-tools/workers-tools-menu/create-add-worker.md) tool, you will be adding the Worker as a statically-linked subWorker.

The Main VI of a statically-linked subWorker will appear below the QMH of the Worker that you are adding the subWorker to, as shown below.

![Main VIs of statically-linked subWorkers located below a Worker's QMH (Workers Fundamentals example project)](/files/s3FwlqxuWTYJt2t70wXp)

Within an application's Worker call-chain hierarchy diagram, you can identify statically-linked subWorkers as subWorkers **without** an outer dashed line. The Workers in the red box below represent the statically-linked subWorkers in the block diagram above.

![Statically-linked subWorkers of Worker A.](/files/ixwJw3yTFqYZTPmNkXVz)

## Dynamically Loaded subWorkers

Workers can also be integrated into a Worker's call-chain hierarchy at run-time, by loading a Worker dynamically from another Worker by using the Workers palette VI: *Dynamically Load Worker v2.vi.* This VI is used within the [Dynamically Load Worker Public API](/workers-tools/workers-tools-menu/public-api-builder.md#create-dynamically-load-worker-vi) VIs. An example of a Worker that is loaded dynamically at run-time is shown in the image below. Here you can see that Worker D is loaded dynamically by another Worker, and its returned Worker object is stored in the [Main Data Wire](/fundamental-concepts/important-terms.md#worker-main-data-wire) of the Caller.

![Worker D is dynamically loaded from Worker A (Workers Fundamentals example project)](/files/FhZxYoPAAjoMO7VdIh7r)

Within a Workers call-chain hierarchy diagram, you can identify a dynamically loaded subWorker as a subWorker **with** an outer dashed line. The Worker in the red box below represents the dynamically loaded subWorker in the block diagram above.

![Dynamically loaded subWorker of Worker A](/files/EM7NAv34jJDxk15T7YVB)

{% hint style="info" %}
Dynamically loaded Workers are loaded with LabVIEW's *Start Asynchronous Call* node, using flags: 0x100 flag (Call and Collect) and 0x40 (Enable simultaneous calls on reentrant VIs).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workersforlabview.io/fundamental-concepts/subworker-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
