Condividi tramite


PreAllocatedOverlapped.UnsafeCreate Metodo

Definizione

Importante

Questa API non è conforme a CLS.

Inizializza una nuova istanza della PreAllocatedOverlapped classe, specificando un delegato richiamato quando ogni operazione di I/O asincrona viene completata, un oggetto fornito dall'utente che fornisce contesto e oggetti gestiti che fungono da buffer.

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

Parametri

callback
IOCompletionCallback

Delegato IOCompletionCallback che rappresenta il metodo di callback richiamato quando viene completata ogni operazione di I/O asincrona.

state
Object

Oggetto fornito dall'utente che distingue NativeOverlapped l'istanza prodotta da questo oggetto da altre NativeOverlapped istanze. Può essere null.

pinData
Object

Oggetto o matrice di oggetti che rappresentano il buffer di input o di output per le operazioni. Ogni oggetto rappresenta uno buffer, ad esempio una matrice di byte. Può essere null.

Restituisce

Nuova istanza di PreAllocatedOverlapped.

Attributi

Eccezioni

callback è null.

Questo metodo è stato chiamato dopo l'eliminazione di ThreadPoolBoundHandle.

Commenti

La nuova PreAllocatedOverlapped istanza può essere passata a AllocateNativeOverlapped(PreAllocatedOverlapped)per produrre un'istanza NativeOverlapped che può essere passata al sistema operativo nelle operazioni di I/O sovrapposte. Una singola PreAllocatedOverlapped istanza può essere usata solo per un'operazione di I/O nativa alla volta. Tuttavia, lo stato archiviato nell'istanza PreAllocatedOverlapped può essere riutilizzato per le operazioni native successive. ExecutionContext non viene eseguito alla chiamata del callback.

Nota

I buffer specificati in pinData vengono aggiunti fino a quando Dispose() non viene chiamato.

Si applica a