CFWriteStreamClose() очищается?

Предположим, у вас есть CFWriteStream что ты называешь CFWriteStreamClose() сразу после звонка CFWriteStreamWrite(), Оба вызова осуществляются в одном потоке. Будет ли операция закрытия гарантировать, что любые байты, записанные / буферизованные потоком, действительно будут отправлены получателю до того, как поток будет уничтожен?

Короче, звонит CFWriteStreamClose() очистить поток?

1 ответ

Решение

Согласно документации, нет, это не так. Это "прекращает поток байтов" в потоке. В то время как CFWriteStreamWrite является синхронным, это не гарантирует, что все байты, которые вы хотите записать, будут записаны за один вызов. Таким образом, он возвращает количество фактически записанных байтов; ваша задача - продолжать звонить до тех пор, пока ваши данные не будут исчерпаны или вы не решите прекратить их действие.

Вызов функции close предназначен для очистки любых ресурсов, связанных с потоком.

Другие вопросы по тегам