- Joined
- Jun 13, 2016
- RedCents
- 31,901¢
Situation:
ImGui button kicks off a method which performs some UI-heavy stuff (specifically Overseer walking the agent list). With my agent count, this can take 30 seconds of UI interactions.
This works. Except the entire EQ UI freezes up for approx 2-3 seconds. Then snaps back with the task completed (30-second task done in 2. Handy, but), flooding the console window to catch up on any output generated.
mq.pause(), mq.parse('/delay xxx') seem ignored or have no impact.
This does sound like a single-UI thread block kinda thing. But not sure the solution.
I have separate modules, etc. Have tried quite a few variations of what goes where, but I assume I'm missing something fundamental here.
ImGui button kicks off a method which performs some UI-heavy stuff (specifically Overseer walking the agent list). With my agent count, this can take 30 seconds of UI interactions.
This works. Except the entire EQ UI freezes up for approx 2-3 seconds. Then snaps back with the task completed (30-second task done in 2. Handy, but), flooding the console window to catch up on any output generated.
mq.pause(), mq.parse('/delay xxx') seem ignored or have no impact.
This does sound like a single-UI thread block kinda thing. But not sure the solution.
I have separate modules, etc. Have tried quite a few variations of what goes where, but I assume I'm missing something fundamental here.
Lua:
local mq = require('mq')
local overseer = require('overseer.overseer')
local hasAction = false
function DrawMainWindow()
Open, ShowUI = ImGui.Begin('Overseer', Open)
if ShowUI then
if ImGui.Button('Collect Statistics') then
hasAction = true
end
end
ImGui.End()
if (hasAction) then
hasAction = false
overseer.CollectAgentStatistics()
end
end

