Понимание задачи и контекста GLib - PullRequest
0 голосов
/ 18 марта 2019

Я не понимаю функциональность GTask? зачем мне это? На мой взгляд, это похоже на обратный вызов ... вы устанавливаете обратный вызов для источника в некотором контексте, и этот обратный вызов затем вызывается, когда происходит событие.

В общем, я немного запутался в том, что такое контекст и задача в GLib и зачем они нам нужны. В моем понимании есть основной цикл (только 1?), Который может запускать несколько контекстов (что такое контекст?), И каждый контекст связан с несколькими источниками, которые, в свою очередь, имеют обратные вызовы, похожие на обработчики.

Так что, может, кто-нибудь, пожалуйста, определит для меня все это.

1 Ответ

0 голосов
/ 19 марта 2019

Я не понимаю функциональность GTask?зачем мне это?На мой взгляд, это похоже на обратный вызов. Вы устанавливаете обратный вызов для источника в некотором контексте, и этот обратный вызов затем вызывается, когда происходит событие.задача в потоке и возвращая результат обратно в основной поток.

В общем, я немного запутался в том, что такое контекст и задача в GLib и зачем они нам нужны.В моем понимании есть основной цикл (только 1?), Который может запускать несколько контекстов (что такое контекст?), И каждый контекст связан с несколькими источниками, которые в свою очередь имеют обратные вызовы, похожие на обработчики.

Для простоты я считаю безопасным рассматривать контексты и циклы одно и то же, и их может быть несколько.Таким образом, чтобы быть потокобезопасным, задача должна знать, в какой контекст возвращается результат.

...