I have a large Desktop app that runs great in Debug and Build OK (macOS, Windows and Linux). Now that I have added a Worker to this app, it still runs great in Debug, I can even see the Worker (I know its a thread, not console in Debug) running as it should.
My problem is that when I go to Build the app (macOS, Windows or Linux), it seems to compile fine until it goes to add the Worker, then the Xojo IDE goes entirely black, freezes, doesn’t finish compiling, and needs to be force quit.
I can run the half-compiled app, but it fails as it says the Worker component is missing.
How can I build my application, or find out where the problem exists?
In which version of Xojo do you have this issue? How long did you wait? I saw a very long compilation time for workers in an early “beta” of version 2020. But till 2021 the build time is very short again.
I am running 2021R1.1. It looks like it is only me who has seem this symptom, or I’m one of the few using a Worker on a large application!
I can only assume I have some code that works in a thread, but not in Console. I have all my code cross-platform Console-Safe, so I assumed it was not any of that, but it must be.
I have created a test app and am moving things across to see where it might break. If I get it reproducible, I’ll create a FeedBack Bug Report. Thanks to all.
I tried to find the cause of the failure to Build with my Worker by adding my Classes and Modules to a Console application. While most of my code was console-safe, I use GraffitiSuite and other classes that would need lots of work to make console-safe.
I added lines like this to the Project Items To Include field:
myModule1.doMyMethod1
myModule2.doMyMethod2
but it gave a compile error (for every line) that ‘The project item ‘doMyMethod1’ in ProjectItemsToInclude could not be copied because it does not exist’.
It does exist, so how am I supposed to add my Modules and Method Project Items to the Worker?
You can’t add individual methods. You should list classes and modules there and then set the compatibility flags on the individual methods, properties, etc that you want included.
Or… make a specific module that only has the stuff that’s needed in the worker and just include that.
I was able to perform a Build by placing the required Methods inside the Worker itself and both App and Worker communicate via an external SQLite database.