Я хотел бы знать, как возможно, что функция С# Invoke может работать (теперь я рассматриваю вызов из рабочего потока для вызова метода, который управляет графическим интерфейсом из потока графического интерфейса):
Предположим, у меня есть два потока, и каждый из них имеет указатель на указатель, указывая на исполняемую команду.
Теперь я вызываю Invoke в рабочем потоке для запуска делегата в потоке графического интерфейса. Как это возможно, когда в потоке GUI уже есть указатель на указатель (IP), и каждый поток может иметь только один? Что происходит с этим IP-адресом, когда я неожиданно вызываю свой код? И как это делается, когда поток GUI может впоследствии продолжать то, что он делал (его прежний IP-сервер каким-то образом восстановлен)?
Обобщение этого вопроса заключается в том, как это делается, когда я хочу вызвать функцию f() из потока 1 таким образом, что f() выполняется в контексте некоторого другого потока...
Спасибо за просвещение:)!