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