Как отменить сервер от клиента с помощью grpc в С#? ⇐ C#
Как отменить сервер от клиента с помощью grpc в С#?
Я хочу отменить сервер, созданный на C#, из клиента, написанного на C#. Однако я не буду использовать для этого токены отмены. Я попробовал это сделать с помощью флага. Я написал код, который отправляет true, когда я хочу прекратить отправку false во время работы со стороны клиента. Однако, если значение true на стороне сервера, оно немедленно снова становится ложным и никогда не выходит из цикла while. Я не мог как-то решить эту проблему. можешь мне помочь?
публичное переопределение асинхронных задач StreamArrays (запрос MyRequest, IServerStreamWriter responseStream, контекст ServerCallContext) { пытаться { в то время как (request.IsCancelledRequested == false) { Ответ MyResponse = новый MyResponse(); счетчик++; ответ.данные = счетчик; дождитесь ответаStream.WriteAsync(ответ); ждать Task.Delay(15); } } окончательно { request.IsCancelledRequested = правда; } } //клиент; публичная асинхронная задача SendStreamArray() // для запуска { Запрос MyRequest = новый MyRequest() { IsCancelledRequested = ложь, }; используя var responseStreamArray = client.StreamArrays(запрос); ожидайте foreach (ответ var в responseStreamArray.ResponseStream.ReadAllAsync()) { данные = ответ.данные; } } публичный асинхронный недействительный StopStream() { Запрос MyRequest = новый MyRequest() { IsCancelledRequested = правда, }; используя var responseStreamArray = client.StreamArrays(запрос); }
Я хочу отменить сервер, созданный на C#, из клиента, написанного на C#. Однако я не буду использовать для этого токены отмены. Я попробовал это сделать с помощью флага. Я написал код, который отправляет true, когда я хочу прекратить отправку false во время работы со стороны клиента. Однако, если значение true на стороне сервера, оно немедленно снова становится ложным и никогда не выходит из цикла while. Я не мог как-то решить эту проблему. можешь мне помочь?
публичное переопределение асинхронных задач StreamArrays (запрос MyRequest, IServerStreamWriter responseStream, контекст ServerCallContext) { пытаться { в то время как (request.IsCancelledRequested == false) { Ответ MyResponse = новый MyResponse(); счетчик++; ответ.данные = счетчик; дождитесь ответаStream.WriteAsync(ответ); ждать Task.Delay(15); } } окончательно { request.IsCancelledRequested = правда; } } //клиент; публичная асинхронная задача SendStreamArray() // для запуска { Запрос MyRequest = новый MyRequest() { IsCancelledRequested = ложь, }; используя var responseStreamArray = client.StreamArrays(запрос); ожидайте foreach (ответ var в responseStreamArray.ResponseStream.ReadAllAsync()) { данные = ответ.данные; } } публичный асинхронный недействительный StopStream() { Запрос MyRequest = новый MyRequest() { IsCancelledRequested = правда, }; используя var responseStreamArray = client.StreamArrays(запрос); }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как выполнить модульное тестирование клиента gRPC, моделируя grpc.GrpcError в Python
Anonymous » » в форуме Python - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Вопрос о лучшей практике пользовательского интерфейса: кнопка отменить или отменить ссылку
Anonymous » » в форуме Html - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-