FileRecordSequence.BeginReserveAndAppend Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает асинхронную операцию резервирования и добавления.
Перегрузки
| Имя | Описание |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Начинает асинхронную операцию резервирования и добавления. Этот метод нельзя наследовать. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Начинает асинхронную операцию резервирования и добавления. Этот метод нельзя наследовать. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Начинает асинхронную операцию резервирования и добавления. Этот метод нельзя наследовать.
public:
virtual IAsyncResult ^ BeginReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- data
- ArraySegment<Byte>
Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.
- nextUndoRecord
- SequenceNumber
Порядковый номер следующей записи в указанном пользователем порядке.
- previousRecord
- SequenceNumber
Порядковый номер следующей записи в предыдущем порядке.
- recordAppendOptions
- RecordAppendOptions
Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.
- reservationCollection
- ReservationCollection
Коллекция резервирования для резервирования.
- reservations
- Int64[]
Резервирования, которые нужно сделать, в байтах.
- callback
- AsyncCallback
Необязательный асинхронный обратный вызов, вызываемый при завершении добавления.
- state
- Object
Предоставленный пользователем объект, который отличает этот конкретный асинхронный запрос на добавление от других запросов.
Возвращаемое значение
Объект, IAsyncResult представляющий эту асинхронную операцию, которая по-прежнему может быть ожидающей.
Реализации
Исключения
Один или несколько аргументов.null
Один или несколько аргументов находятся вне диапазона.
reservations не был создан этой последовательностью записей.
Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.
Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.
Метод был вызван после удаления последовательности.
Недостаточно памяти для продолжения выполнения программы.
Последовательность записей заполнена.
В ней нет достаточно большого резервирования, чтобы его можно data было найти reservations.
Комментарии
Необходимо передать IAsyncResult возвращенный этим методом методу EndReserveAndAppend , чтобы убедиться, что операция добавления завершена и ресурсы можно освободить соответствующим образом. Если во время асинхронного добавления произошла ошибка, исключение не возникает, пока EndReserveAndAppend метод не вызывается с IAsyncResult возвращаемым этим методом.
Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.
Указанные резервирования добавляются в предоставленную коллекцию резервирования в атомарной операции с операцией добавления записи. Если добавление завершается ошибкой, пространство не зарезервировано.
Как правило, этот метод может завершиться до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.
Если последовательность записей была удалена или вы передаете недопустимый аргумент, исключения создаются немедленно в рамках этой операции. Ошибки, возникающие во время асинхронного запроса на добавление, например сбой диска во время запроса ввода-вывода, приведет к возникновению исключений при EndReserveAndAppend вызове метода.
Применяется к
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Начинает асинхронную операцию резервирования и добавления. Этот метод нельзя наследовать.
public:
virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- data
- IList<ArraySegment<Byte>>
Список сегментов массива байтов, которые будут сцеплены и добавлены в качестве записи.
- nextUndoRecord
- SequenceNumber
Порядковый номер следующей записи в указанном пользователем порядке.
- previousRecord
- SequenceNumber
Порядковый номер следующей записи в предыдущем порядке.
- recordAppendOptions
- RecordAppendOptions
Допустимое значение RecordAppendOptions , указывающее, как должны быть записаны данные.
- reservationCollection
- ReservationCollection
Коллекция резервирования для резервирования.
- reservations
- Int64[]
Резервирования, которые нужно сделать, в байтах.
- callback
- AsyncCallback
Необязательный асинхронный обратный вызов, вызываемый при завершении добавления.
- state
- Object
Предоставленный пользователем объект, который отличает этот конкретный асинхронный запрос на добавление от других запросов.
Возвращаемое значение
Объект, IAsyncResult представляющий эту асинхронную операцию, которая по-прежнему может быть ожидающей.
Реализации
Исключения
Один или несколько аргументов.null
Один или несколько аргументов находятся вне диапазона.
reservations не был создан этой последовательностью записей.
Невозможно выполнить операцию, так как последовательность записей была открыта с доступом только для чтения.
Не удалось выполнить запрос из-за неожиданного исключения ввода-вывода.
Метод был вызван после удаления последовательности.
Недостаточно памяти для продолжения выполнения программы.
Последовательность записей заполнена.
В ней нет достаточно большого резервирования, чтобы его можно data было найти reservations.
Комментарии
Необходимо передать IAsyncResult возвращенный этим методом методу EndReserveAndAppend , чтобы убедиться, что операция добавления завершена и ресурсы можно освободить соответствующим образом. Если во время асинхронного добавления произошла ошибка, исключение не возникает, пока EndReserveAndAppend метод не вызывается с IAsyncResult возвращаемым этим методом.
Данные, содержащиеся в параметре data , будут объединяться в один массив байтов для добавления в качестве записи. Однако при чтении записи не выполняется подготовка для разделения данных обратно на сегменты массива.
Указанные резервирования добавляются в предоставленную коллекцию резервирования в атомарной операции с операцией добавления записи. Если добавление завершается ошибкой, пространство не зарезервировано.
Как правило, этот метод может завершиться до записи. Чтобы убедиться, что запись была записана, укажите ForceFlush флаг с помощью recordAppendOptions параметра или вызовите Flush метод.
Если последовательность записей была удалена или вы передаете недопустимый аргумент, исключения создаются немедленно в рамках этой операции. Ошибки, возникающие во время асинхронного запроса на добавление, например сбой диска во время запроса ввода-вывода, приведет к возникновению исключений при EndReserveAndAppend вызове метода.