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 не выполняется вызов обратного вызова.
Note
Буферы, указанные в, pinData закреплены в течение операции ввода-вывода.