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 не выполняется к вызову обратного вызова.

Note

Буферы, указанные в, pinData закреплены до Dispose() вызова.

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