GLib.idle_add (функция) имеет разные политики для разных функций - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть окно GTK.Получается, что если я запланирую несколько вызовов перерисовки одновременно, без задержки, из отдельного потока, используя idle_add(window.queue_draw), будет выполняться только один вызов.

В то время как если я сделаю idle_add(custom_function), то каждыйЗапустится запланированный вызов custom_function.

Хотя ясно, что это сделано для оптимизации, я не могу видеть, упоминается ли / где это упоминается в документации [1], и мне также интересно, есть ли другие такие правиладля idle_add.

[1] https://developer.gnome.org/pygobject/stable/glib-functions.html

1 Ответ

0 голосов
/ 12 декабря 2018

Это на самом деле не idle_add, что делает такое поведение.Документы для widget-queue-draw-region , который вызывается queue-redraw, утверждают, что перерисовка выполняется только после того, как основной цикл больше не занят.

...