LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW NXG - Root Loop and .Net calls

Hi All.

 

 

We are building a LabVIEW application, which makes calls to various .Net assemblies. In general, this is working just fine.

 

However, for high performing applications, we are facing issues with our application being unresponsive if the call to the .Net assembly is taking too long - because it is a blocking call that goes through the LabVIEW Root Loop.

 

Then I came to wonder: What about LabVIEW NXG? Isn't that basically written in C#? Do I then have the same limitations?

Anyone knowing if we still have the same Root Loop mechanism in NXG?

 

Just for reference:

The UI Thread, Root Loop, and LabVIEW: What You Need to Know

The Root Loop

 

Best Regards

Alex E. Munkhaus
Certified LabVIEW Developer (CLD)
System Engineer
0 Kudos
Message 1 of 2
(1,335 Views)

Are you certain that .NET calls block the root loop in regular LabVIEW?  

 

I can call a .NET invoke node on my system that takes multiple seconds to run, and in the middle of that I can have LabVIEW in parallel run the "1 button dialog" node which (according to one of the pages you linked) requires the root loop to run.

 

I posted this thread about a year back as well, showing that if you put .NET nodes in your code, sometimes they run in parallel and sometimes they don't.  Maybe you could put in something like that to allow other .NET nodes to run while your one long-call node is still running?  Maybe that's your actual root problem?

 

Failing all that, if you have a current license for LabVIEW 2020 then you also have a license for the newest NXG version already.  You could download it and construct a simple test program using your actual .NET calls instead of asking the hypothetical, and it wouldn't cost anything except a bit of your time...

Message 2 of 2
(1,287 Views)