Как отменить сервер от клиента с помощью grpc в С#?C#

Место общения программистов 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(запрос); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»