Потратил некоторое время на поиск в Google, но не нашел окончательного ответа и не уверен, как доказать это с помощью теста (предложения приветствуются).
У нас есть служба WCF с методом, который ожидает определенного события, чтобыпроисходят в цикле.В цикле он использовал Thread.Sleep, чтобы подождать несколько 100 мс, что много для службы (мы хотим изменить это. Не очень хорошая идея спать в службе, верно?).
Я бы хотелповысить пропускную способность, сделав метод асинхронным и используя вместо него Task.Delay, не изменяя контракт на обслуживание.После выполнения асинхронного метода и восстановления класса контракта кажется, что подпись контракта не повреждена.Я также вижу, что сгенерированный код теперь имеет машину состояний, которая, кажется, указывает, что он теперь асинхронный.
Мой вопрос заключается в том, получу ли я преимущество от того, что поток доступен для другой работы, даже если я вызову асинхронный вызовметод обслуживания синхронным способом?Будет ли фреймворк ждать метода обслуживания?
Br