Поделиться через


FileRecordSequence.BeginWriteRestartArea Метод

Определение

Начинает операцию записи в область перезапуска.

Перегрузки

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

data
ArraySegment<Byte>

Список фрагментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

newBaseSeqNum
SequenceNumber

Новый базовый порядковый номер. Заданный порядковый номер должен быть больше или равен текущему базовому порядковому номеру.

reservation
ReservationCollection

Коллекция ReservationCollection, содержащая резервирование, которое следует использовать для данной области перезапуска.

callback
AsyncCallback

Необязательный асинхронный обратный вызов по завершении записи в области перезапуска.

state
Object

Предоставляемый пользователем объект, отличающий конкретный запрос на асинхронную запись в область перезапуска от других запросов.

Возвращаемое значение

Объект IAsyncResult представляет асинхронную операцию записи в область перезапуска, которая может все еще быть отложена.

Реализации

Исключения

Один или несколько аргументов имеют значение null.

Значение параметра newBaseSeqNum не лежит между основным и последним порядковыми номерами этой последовательности.

-или-

Новая или существующая архивная цепочка или база активного журнала недействительна.

Параметр reservations не был создан этой последовательностью записи.

-или-

Значение параметра newBaseSeqNum недопустимо для этой последовательности.

Невозможно выполнить операцию, поскольку последовательность записей была открыта с доступом только для чтения.

Выполнить запрос невозможно из-за непредвиденного исключения ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Последовательность записей заполнена.

В data не удается найти резервирование, достаточное для размещения параметра reservations.

Комментарии

Чтобы обеспечить завершение операции записи в область перезапуска и освободить соответствующие ресурсы, необходимо передать значение IAsyncResult, возвращенное этим методом, в метод EndWriteRestartArea. Если ошибка возникла при выполнении операции асинхронной записи в область перезапуска, исключение не будет создано до тех пор, пока метод EndWriteRestartArea не будет вызван со значением IAsyncResult, возвращенным данным методом.

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

При успешном выполнении операции базовый порядковый номер обновляется. Все записи журнала с порядковыми номерами меньшими, чем новый базовый порядковый номер, недоступны.

Если задано ReservationCollection, записанная область перезапуска будет занимать место, ранее зарезервированное с помощью содержащегося в коллекции резервирования. Если метод завершается успешно, будет занята минимальная область резервирования, в которой поместятся данные, а эта область резервирования будет удалена из коллекции.

Если последовательность записей была удалена, или если передается неверный аргумент, исключения создаются немедленно, в пределах данной операции. Ошибки, возникшие при выполнении запроса асинхронного добавления, например ошибка диска в процессе запроса ввода-вывода, приводят к созданию исключений при вызове метода EndWriteRestartArea.

Применяется к

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Начинает асинхронную операцию записи в область перезапуска, используя пространство, которое было ранее зарезервировано в последовательности. Этот метод не может быть унаследован.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

data
IList<ArraySegment<Byte>>

Список фрагментов массива байтов, которые будут сцеплены и добавлены в качестве записи.

newBaseSeqNum
SequenceNumber

Новый базовый порядковый номер. Заданный порядковый номер должен быть больше или равен текущему базовому порядковому номеру.

reservation
ReservationCollection

Коллекция ReservationCollection, содержащая резервирование, которое следует использовать для данной области перезапуска.

callback
AsyncCallback

Необязательный асинхронный обратный вызов по завершении записи в области перезапуска.

state
Object

Предоставляемый пользователем объект, отличающий конкретный запрос на асинхронную запись в область перезапуска от других запросов.

Возвращаемое значение

Объект IAsyncResult представляет асинхронную операцию записи в область перезапуска, которая может все еще быть отложена.

Реализации

Исключения

Один или несколько аргументов имеют значение null.

Значение параметра newBaseSeqNum не лежит между основным и последним порядковыми номерами этой последовательности.

-или-

Новая или существующая архивная цепочка или база активного журнала недействительна.

Параметр reservations не был создан этой последовательностью записи.

-или-

Значение параметра newBaseSeqNum недопустимо для этой последовательности.

Невозможно выполнить операцию, поскольку последовательность записей была открыта с доступом только для чтения.

Выполнить запрос невозможно из-за непредвиденного исключения ввода-вывода.

Метод был вызван после удаления последовательности.

Недостаточно памяти, чтобы продолжить выполнение программы.

Последовательность записей заполнена.

В data не удается найти резервирование, достаточное для размещения параметра reservations.

Комментарии

Чтобы обеспечить завершение операции записи в область перезапуска и освободить соответствующие ресурсы, необходимо передать значение IAsyncResult, возвращенное этим методом, в метод EndWriteRestartArea. Если ошибка возникла при выполнении операции асинхронной записи в область перезапуска, исключение не будет создано до тех пор, пока метод EndWriteRestartArea не будет вызван со значением IAsyncResult, возвращенным данным методом.

Данные, содержащиеся в параметре data, будут сцеплены в единый массив байтов для добавления в качестве записи. Однако не делается допущение об обратном разделении данных на фрагменты массива при чтении записи.

При успешном выполнении операции базовый порядковый номер обновляется. Все записи журнала с порядковыми номерами меньшими, чем новый базовый порядковый номер, недоступны.

Если задано ReservationCollection, записанная область перезапуска будет занимать место, ранее зарезервированное с помощью содержащегося в коллекции резервирования. Если метод завершается успешно, будет занята минимальная область резервирования, в которой поместятся данные, а эта область резервирования будет удалена из коллекции.

Если последовательность записей была удалена, или если передается неверный аргумент, исключения создаются немедленно, в пределах данной операции. Ошибки, возникшие при выполнении запроса асинхронного добавления, например ошибка диска в процессе запроса ввода-вывода, приводят к созданию исключений при вызове метода EndWriteRestartArea.

Применяется к