PreAllocatedOverlapped.UnsafeCreate Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Важно!
Этот API несовместим с CLS.
Инициализирует новый экземпляр PreAllocatedOverlapped класса , указывая делегат, который вызывается при завершении каждой асинхронной операции ввода-вывода, предоставленный пользователем объект, предоставляющий контекст, и управляемые объекты, которые служат буферами.
public:
static System::Threading::PreAllocatedOverlapped ^ UnsafeCreate(System::Threading::IOCompletionCallback ^ callback, System::Object ^ state, System::Object ^ pinData);
[System.CLSCompliant(false)]
public static System.Threading.PreAllocatedOverlapped UnsafeCreate (System.Threading.IOCompletionCallback callback, object? state, object? pinData);
[<System.CLSCompliant(false)>]
static member UnsafeCreate : System.Threading.IOCompletionCallback * obj * obj -> System.Threading.PreAllocatedOverlapped
Public Shared Function UnsafeCreate (callback As IOCompletionCallback, state As Object, pinData As Object) As PreAllocatedOverlapped
Параметры
- callback
- IOCompletionCallback
Делегат IOCompletionCallback , представляющий метод обратного вызова, вызываемый при завершении каждой асинхронной операции ввода-вывода.
- state
- Object
Предоставленный пользователем объект, который отличает NativeOverlapped экземпляр, созданный из этого объекта, от других NativeOverlapped экземпляров. Может иметь значение null
.
- pinData
- Object
Объект или массив объектов , представляющих входной или выходной буфер для операций. Каждый объект представляет буфер, например, массив байтов. Может иметь значение null
.
Возвращаемое значение
Новый экземпляр PreAllocatedOverlapped.
- Атрибуты
Исключения
callback
имеет значение null
.
Этот метод был вызван после удаления ThreadPoolBoundHandle.
Комментарии
Новый PreAllocatedOverlapped экземпляр можно передать в AllocateNativeOverlapped(PreAllocatedOverlapped), чтобы создать NativeOverlapped экземпляр, который может быть передан операционной системе в перекрывающихся операциях ввода-вывода. Один PreAllocatedOverlapped экземпляр можно использовать только для одной собственной операции ввода-вывода одновременно. Однако состояние, хранящееся в экземпляре PreAllocatedOverlapped , можно повторно использовать для последующих собственных операций. ExecutionContext не перетекает в вызов обратного вызова.
Примечание
Буферы, указанные в , pinData
закрепляются до вызова Dispose() .