11-09-2020 06:04 AM
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
11-09-2020 11:42 AM
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...