A heavy process freezes your VFP application's interface until it finishes.
Background tasks. Always-responsive UI.
Run heavy processes (imports, reports, API calls) without blocking your VFP application's interface. Each task runs in its own VFP process, with the code you already have: up to 64 at a time, and by default as many as you have cores, capped at 8.
- Imports
- Reports
- API calls
- Batches and data sync
No credit card. Verify your email and you get 30 days of a full license (not a cut-down build) for FoxServer, FoxCore, FoxBridge, FoxAgent, FoxCli and FoxCli MCP, installer included, in your portal. One per person and product; after 30 days it expires.
Features
Async execution
Launch VFP tasks in the background. The UI stays fully responsive while work happens in parallel.
Progress and cancellation
The task reports with runtime.Progress(0-100, message) and the form reads it with GetProgress(). And it asks runtime.IsCancelled() on each turn, so the Cancel button really works.
The worker calls back
From the script, runtime.Call() runs a handler of yours in the main process, and GetValue()/SetValue() are a blackboard shared by both.
From 1 to 64 processes
MaxWorkers to suit your hardware; the rule of thumb is physical cores. For batches, data sync and reports.
Total isolation
The worker does not see your variables, your work areas, your SETs or your cursors. It is born clean and opens what it needs: the product's best property, and also its biggest restriction.
One license per company
Seats and copies are not counted: the same JWT covers your whole team and ships inside the .exe you hand your customers.
How it works
- 1Start the engine once
loRt = CREATEOBJECT('FoxCore.Runtime'), loRt.Activate(lcJwt) and loRt.Attach(_VFP). The license is a JWT you pass in code: there is no file to copy.
- 2Fire the work and move on
loRt.RunScript(lcScript, 'MyTask') returns the task id straight away: the VFP script runs in another process and your form stays responsive.
- 3Collect the result
With that id: GetProgress() for the bar, IsCompleted() to know when it finished and GetResult() for the value. On exit, loRt.Shutdown().
Price
One license per company. One-time payment, no seats to count. The version you buy works forever.
Frequently asked questions
How many tasks can I run in parallel?
Do tasks share memory with the UI?
Can I access DBFs from tasks?
Does the license cover all my development installations?
What happens if a task throws an error?
What happens when maintenance ends?
No more frozen UIs in your VFP apps
Install FoxCore and have your first background task running in minutes.
Buy now