Рассмотрим следующий пример, взятый из N3650:
int cnt = 0;
do {
cnt = await streamR.read(512, buf);
if (cnt == 0)
break;
cnt = await streamW.write(cnt, buf);
} while (cnt > 0);
Я, наверное, что-то упускаю, но если я хорошо понял async
и await
, то какой смысл показывать полезность двух конструкций на приведенном выше примере, когда эффекты эквивалентны написанию:
int cnt = 0;
do {
cnt = streamR.read(512, buf).get();
if (cnt == 0)
break;
cnt = streamW.write(cnt, buf).get();
} while (cnt > 0);
где вызовы read().get()
и write().get()
синхронны?