Согласно контекстной документации go ,
context.Background()
возвращает ненулевой пустой контекст. Он никогда не отменяется, не имеет значений и не имеет крайнего срока. Обычно он используется главной функцией, инициализацией и тестами, а также в качестве контекста верхнего уровня для входящих запросов.
И действительно, если вы изучите исходный код, вы обнаружите, что фоновый контекст является экземпляром пустого контекста, который не будет возвращать крайний срок.
Теперь вернемся к C ++, просмотрев источник , вы можете увидеть, что контекст построен аналогичным образом, и несколько примеров иллюстрируют что можно использовать пустой ClientContext
.
Кроме того, проверка https://grpc.github.io/blog/deadlines показывает, что для C ++ вы можете установить крайний срок, например:
ClientContext context;
time_point deadline = std::chrono::system_clock::now() +
std::chrono::milliseconds(100);
context.set_deadline(deadline);
Что для меня означает, что эквивалент context.Background()
в C ++ является справедливым и пустым контекстом:
ClientContext context;
Также это относится и к ServerContext
. Я надеюсь, что это может помочь вам!