subWorker Types

A subWorker can be either statically linked to its Manager or be loaded dynamically on demand during run-time.

The Fundamentals sample project uses both statically linked Workers and a dynamically loaded Worker, and is a great starting place to see both types used in an application.

Statically Linked subWorkers

Whenever you add a Worker to your Worker's application using the Create/Add Worker tool, you will be adding the Worker as a statically linked subWorker. A statically linked subWorker will be loaded into its Manager at compile time.

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.

Within a Workers 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.

Dynamically Loaded subWorkers

You can dynamically load Workers at run-time, on demand, by using the Workers palette VI: Dynamically Load Worker.vi. This VI will load a Worker as a subWorker into the Worker you call the VI from. An example of this is shown below.

Within a Workers application's Worker 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 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).

Last updated