Freigeben über


Overlapped.Pack Methode

Definition

Packt die aktuelle Instanz in eine NativeOverlapped-Struktur.

Überlädt

Pack(IOCompletionCallback)
Veraltet.
Veraltet.
Veraltet.

Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt den Delegaten an, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist.

Pack(IOCompletionCallback, Object)

Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt einen Delegaten, der aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist, und ein verwaltetes Objekt an, das als Puffer dient.

Pack(IOCompletionCallback)

Quelle:
Overlapped.cs
Quelle:
Overlapped.cs
Quelle:
Overlapped.cs

Achtung

This method is not safe. Use Pack (iocb, userData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Achtung

This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.

Achtung

This method is not safe. Use Pack (iocb, userData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Wichtig

Diese API ist nicht CLS-kompatibel.

Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt den Delegaten an, der aufgerufen werden soll, wenn der asynchrone E/A-Vorgang abgeschlossen ist.

public:
 System::Threading::NativeOverlapped* Pack(System::Threading::IOCompletionCallback ^ iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.")]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback? iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb);
[System.CLSCompliant(false)]
[System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb);
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This overload is not safe and has been deprecated. Use Pack(IOCompletionCallback?, object?) instead.")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Obsolete("This method is not safe.  Use Pack (iocb, userData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
[<System.Security.SecurityCritical>]
member this.Pack : System.Threading.IOCompletionCallback -> nativeptr<System.Threading.NativeOverlapped>

Parameter

iocb
IOCompletionCallback

Ein IOCompletionCallback-Delegat, der die Rückrufmethode darstellt, die aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist.

Gibt zurück

Ein nicht verwalteter Zeiger auf eine NativeOverlapped-Struktur.

Attribute

Ausnahmen

Die aktuelle Overlapped-Klasse wurde bereits gepackt.

Hinweise

Der von dieser Methode zurückgegebene nicht verwaltete Zeiger kann in überlappenden E/A-Vorgängen an das Betriebssystem übergeben werden. Die NativeOverlapped Struktur wird im physischen Arbeitsspeicher behoben, bis Unpack sie aufgerufen wird.

Wichtig

Der Aufrufer ist für das Anheften des Puffers verantwortlich. Wenn die Anwendungsdomäne jedoch entladen wird, wird das Handle für den angehefteten Puffer zerstört, und der Puffer wird freigegeben, sodass der E/A-Vorgang in die freigegebene Adresse schreiben kann. Aus diesem Grund ist es besser, die Pack(IOCompletionCallback, Object) Methodenüberladung zu verwenden, bei der die Runtime den Puffer anheftet.

Gilt für:

Pack(IOCompletionCallback, Object)

Quelle:
Overlapped.cs
Quelle:
Overlapped.cs
Quelle:
Overlapped.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Packt die aktuelle Instanz in eine NativeOverlapped-Struktur und gibt einen Delegaten, der aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist, und ein verwaltetes Objekt an, das als Puffer dient.

public:
 System::Threading::NativeOverlapped* Pack(System::Threading::IOCompletionCallback ^ iocb, System::Object ^ userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback? iocb, object? userData);
[System.CLSCompliant(false)]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb, object userData);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public System.Threading.NativeOverlapped* Pack (System.Threading.IOCompletionCallback iocb, object userData);
[<System.CLSCompliant(false)>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
member this.Pack : System.Threading.IOCompletionCallback * obj -> nativeptr<System.Threading.NativeOverlapped>

Parameter

iocb
IOCompletionCallback

Ein IOCompletionCallback-Delegat, der die Rückrufmethode darstellt, die aufgerufen wird, wenn der asynchrone E/A-Vorgang abgeschlossen ist.

userData
Object

Ein Objekt oder ein Objektarray, das den Eingabe- oder den Ausgabepuffer für den Vorgang darstellt. Jedes Objekt stellt einen Puffer dar, z. B. ein Array von Bytes.

Gibt zurück

Ein nicht verwalteter Zeiger auf eine NativeOverlapped-Struktur.

Attribute

Ausnahmen

Die aktuelle Overlapped-Klasse wurde bereits gepackt.

Hinweise

Der von dieser Methode zurückgegebene nicht verwaltete Zeiger kann in überlappenden E/A-Vorgängen an das Betriebssystem übergeben werden. Die NativeOverlapped Struktur wird im physischen Arbeitsspeicher behoben, bis Unpack sie aufgerufen wird.

Der in userData angegebene Puffer oder puffer muss mit denen identisch sein, die an die nicht verwaltete Betriebssystemfunktion übergeben werden, die die asynchrone E/A ausführt.

Hinweis

Die Laufzeit heftet den bzw. die in userData angegebenen Puffer für die Dauer des E/A-Vorgangs an. Wenn die Anwendungsdomäne entladen wird, bleibt der Arbeitsspeicher von der Runtime so lange angeheftet, bis der E/A-Vorgang abgeschlossen ist.

Gilt für: