Workers for LabVIEW
HomeDownload Follow ProjectAbout
  • Welcome to Workers for LabVIEW
  • What's New in v5.0
    • Upgrading to v5.0
    • New Features
      • Development Tools
      • Functional Changes
      • API Changes
      • Example Projects
      • Change Log
  • Fundamental Concepts
    • What is a Worker?
    • Important Terms
    • The Workers Main VI
      • Default Framework Cases
    • subWorker Types
    • Initialization Sequence
    • Shutdown Sequence
    • Priority Queue
    • Launcher VIs
  • Worker APIs
    • Overview
    • Local Requests
      • Creating Local Requests
    • Public Requests
      • Creating Public Requests
    • Public Requests w/Reply
      • Creating Public Requests w/Reply
    • Public Responses
      • Creating Public Responses
      • Registering Public Responses
    • Case Labels
    • Deleting API Items
  • Workers Tools
    • Workers Tools Menu
      • Create/Add Worker
        • Removing Workers
        • Creating Worker Templates
        • Troubleshooting
      • Workers Debug Server
        • Workers Application Manager
          • Right click menu
        • Worker Message Logs
          • Right click menu
        • Settings
        • Troubleshooting
      • Worker Call-Chain Viewer
      • Worker User Library
        • Config File Editor
      • RT Worker Convert
      • Public API Builder
        • Public Requests
        • Public Requests w/Reply
        • Public Responses
        • Override MHL Cases
      • Create Launcher VI
      • Create Worker Base Class
      • Change Inheritance
      • MHL Case Viewer
      • Change Worker Properties
    • Quickdrop Shortcuts
      • Show Private Data (Ctrl+0)
      • Create MHL Case tool (Ctrl+9)
      • Go To MHL Case (Ctrl+8)
  • Getting Started
    • Creating your first application
    • Example Projects
  • Legal
    • Disclaimer
    • Licenses
Powered by GitBook
On this page
  • Statically-Linked subWorkers
  • Dynamically Loaded subWorkers
  1. Fundamental Concepts

subWorker Types

Workers Fundamental Concepts

PreviousDefault Framework CasesNextInitialization Sequence

Last updated 1 year ago

Good to know

The images in this section are taken from the example project.

Statically-Linked subWorkers

Whenever you add a Worker to another Worker using the 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.

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.

Dynamically Loaded subWorkers

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

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 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 of the Caller.

Workers Fundamentals
Create/Add Worker
Main Data Wire
Main VIs of statically-linked subWorkers located below a Worker's QMH (Workers Fundamentals example project)
Statically-linked subWorkers of Worker A.
Worker D is dynamically loaded from Worker A (Workers Fundamentals example project)
Dynamically loaded subWorker of Worker A
Dynamically Load Worker Public API