Socket.BeginReceive Socket.BeginReceive Socket.BeginReceive Socket.BeginReceive Method

定义

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

重载

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags flags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % error, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags *  * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, flags As SocketFlags, ByRef error As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

参数

buffer
Byte[]

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

offset
Int32 Int32 Int32 Int32

buffer 中存储所接收数据的位置。The location in buffer to store the received data.

size
Int32 Int32 Int32 Int32

要接收的字节数。The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

errorCode
SocketError SocketError SocketError SocketError

一个 SocketError 对象,它存储套接字错误。A SocketError object that stores the socket error.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object Object

一个用户定义的对象,其中包含接收操作的相关信息。A user-defined object that contains information about the receive operation. 当操作完成时,此对象会被传递给 EndReceive(IAsyncResult) 委托。This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

offset 小于 0。offset is less than 0.

- 或 --or- offset 大于 buffer 的长度。offset is greater than the length of buffer.

- 或 --or- size 小于 0。size is less than 0.

- 或 --or- size 大于 buffer 的长度减去 offset 参数的值。size is greater than the length of buffer minus the value of the offset parameter.

注解

异步BeginReceive完成操作,必须通过调用EndReceive方法。The asynchronous BeginReceive operation must be completed by calling the EndReceive method. 通常情况下,通过调用该方法callback委托。Typically, the method is invoked by the callback delegate.

此方法不会阻止,直到完成该操作。This method does not block until the operation is complete. 若要阻止,直到完成该操作后,使用之一Receive方法重载。To block until the operation is complete, use one of the Receive method overloads.

若要取消挂起BeginReceive,调用Close方法。To cancel a pending BeginReceive, call the Close method.

有关使用异步编程模型的详细信息,请参阅Calling Synchronous Methods AsynchronouslyFor detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

备注

如果你收到SocketException,使用SocketException.ErrorCode属性来获取特定错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后,请参阅Windows 套接字版本 2 API 错误代码有关错误的详细说明的文档。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

由给定线程启动的所有 i/o 操作被取消时该线程退出。All I/O initiated by a given thread is canceled when that thread exits. 如果在线程退出该操作完成之前,挂起的异步操作可能会失败。A pending asynchronous operation can fail if the thread exits before the operation completes.

备注

state 是用户定义的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。This member outputs trace information when you enable network tracing in your application. 有关详细信息,请参阅在.NET Framework 中进行网络跟踪For more information, see Network Tracing in the .NET Framework.

备注

为异步缓存的执行上下文 (的安全上下文中,被模拟的用户,并在调用上下文)Socket方法。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 后首次使用特定的上下文 (特定于异步Socket方法中,特定Socket实例和特定的回调),以后使用该上下文将看到性能的改进。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

另请参阅

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socket_flags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socket_flags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

参数

buffer
Byte[]

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

offset
Int32 Int32 Int32 Int32

buffer 参数中存储所接收数据的位置,该位置从零开始计数。The zero-based position in the buffer parameter at which to store the received data.

size
Int32 Int32 Int32 Int32

要接收的字节数。The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object Object

一个用户定义的对象,其中包含接收操作的相关信息。A user-defined object that contains information about the receive operation. 当操作完成时,此对象会被传递给 EndReceive(IAsyncResult) 委托。This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

offset 小于 0。offset is less than 0.

- 或 --or- offset 大于 buffer 的长度。offset is greater than the length of buffer.

- 或 --or- size 小于 0。size is less than 0.

- 或 --or- size 大于 buffer 的长度减去 offset 参数的值。size is greater than the length of buffer minus the value of the offset parameter.

示例

下面的代码示例开始以异步方式从连接接收数据SocketThe following code example begins to asynchronously receive data from a connected Socket.

public ref class StateObject
{
public:
   literal int BUFFER_SIZE = 1024;
   Socket^ workSocket;
   array<Byte>^ buffer;
   StringBuilder^ sb;
   StateObject() : workSocket( nullptr )
   {
      buffer = gcnew array<Byte>(BUFFER_SIZE);
      sb = gcnew StringBuilder;
   }
};
public class StateObject{
     public Socket workSocket = null;
     public const int BUFFER_SIZE = 1024;
     public byte[] buffer = new byte[BUFFER_SIZE];
     public StringBuilder sb = new StringBuilder();
}
Public Class StateObject
   Public workSocket As Socket = Nothing
   Public const BUFFER_SIZE As Integer = 1024
   Public buffer(BUFFER_SIZE) As byte
   Public sb As New StringBuilder()
End Class 'StateObject
static void Listen_Callback( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = safe_cast<Socket^>(ar->AsyncState);
   Socket^ s2 = s->EndAccept( ar );
   StateObject^ so2 = gcnew StateObject;
   so2->workSocket = s2;
   s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
      gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 );
}
public static void Listen_Callback(IAsyncResult ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
	                       new AsyncCallback(Async_Send_Receive.Read_Callback), so2);	
}
Public Shared Sub Listen_Callback(ar As IAsyncResult)
   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   Dim s2 As Socket = s.EndAccept(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s2
   s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2)
End Sub 'Listen_Callback

static void Read_Callback( IAsyncResult^ ar )
{
   StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
   Socket^ s = so->workSocket;

   int read = s->EndReceive( ar );

   if ( read > 0 )
   {
      so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) );
      s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
         gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so );
   }
   else
   {
      if ( so->sb->Length > 1 )
      {
         //All of the data has been read, so displays it to the console
         String^ strContent = so->sb->ToString();
         Console::WriteLine( String::Format( "Read {0} byte from socket" +
            " data = {1} ", strContent->Length, strContent ) );
      }
      s->Close();
   }
}
public static void Read_Callback(IAsyncResult ar){
	StateObject so = (StateObject) ar.AsyncState;
	Socket s = so.workSocket;

	int read = s.EndReceive(ar);

	if (read > 0) {
            so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
            s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, 
            	                     new AsyncCallback(Async_Send_Receive.Read_Callback), so);
	}
	else{
	     if (so.sb.Length > 1) {
	          //All of the data has been read, so displays it to the console
	          string strContent;
	          strContent = so.sb.ToString();
	          Console.WriteLine(String.Format("Read {0} byte from socket" + 
	          	               "data = {1} ", strContent.Length, strContent));
	     }
	     s.Close();
	}
}
Public Shared Sub Read_Callback(ar As IAsyncResult)
   Dim so As StateObject = CType(ar.AsyncState, StateObject)
   Dim s As Socket = so.workSocket
   
   Dim read As Integer = s.EndReceive(ar)
   
   If read > 0 Then
      so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read))
      s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so)
   Else
      If so.sb.Length > 1 Then
         'All the data has been read, so displays it to the console
         Dim strContent As String
         strContent = so.sb.ToString()
         Console.WriteLine([String].Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent))
      End If
      s.Close()
   End If
End Sub 'Read_Callback

注解

异步BeginReceive完成操作,必须通过调用EndReceive方法。The asynchronous BeginReceive operation must be completed by calling the EndReceive method. 通常情况下,通过调用该方法callback委托。Typically, the method is invoked by the callback delegate.

此方法不会阻止,直到完成该操作。This method does not block until the operation is complete. 若要阻止,直到完成该操作后,使用之一Receive方法重载。To block until the operation is complete, use one of the Receive method overloads.

若要取消挂起BeginReceive,调用Close方法。To cancel a pending BeginReceive, call the Close method.

有关使用异步编程模型的详细信息,请参阅Calling Synchronous Methods AsynchronouslyFor detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

备注

如果你收到SocketException,使用SocketException.ErrorCode属性来获取特定错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后,请参阅Windows 套接字版本 2 API 错误代码有关错误的详细说明的文档。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

由给定线程启动的所有 i/o 操作被取消时该线程退出。All I/O initiated by a given thread is canceled when that thread exits. 如果在线程退出该操作完成之前,挂起的异步操作可能会失败。A pending asynchronous operation can fail if the thread exits before the operation completes.

备注

state 是用户定义的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。This member outputs trace information when you enable network tracing in your application. 有关详细信息,请参阅在.NET Framework 中进行网络跟踪For more information, see Network Tracing in the .NET Framework.

备注

为异步缓存的执行上下文 (的安全上下文中,被模拟的用户,并在调用上下文)Socket方法。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 后首次使用特定的上下文 (特定于异步Socket方法中,特定Socket实例和特定的回调),以后使用该上下文将看到性能的改进。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

另请参阅

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

重要

此 API 不符合 CLS。

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
[System.CLSCompliant(false)]
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult

参数

buffers
IList<ArraySegment<Byte>>

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object Object

一个用户定义的对象,其中包含接收操作的相关信息。A user-defined object that contains information about the receive operation. 当操作完成时,此对象会被传递给 EndReceive(IAsyncResult) 委托。This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

注解

异步BeginReceive完成操作,必须通过调用EndReceive方法。The asynchronous BeginReceive operation must be completed by calling the EndReceive method. 通常情况下,通过调用该方法callback委托。Typically, the method is invoked by the callback delegate.

此方法不会阻止,直到完成该操作。This method does not block until the operation is complete. 若要阻止,直到完成该操作后,使用之一Receive方法重载。To block until the operation is complete, use one of the Receive method overloads.

若要取消挂起BeginReceive,调用Close方法。To cancel a pending BeginReceive, call the Close method.

有关使用异步编程模型的详细信息,请参阅Calling Synchronous Methods AsynchronouslyFor detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

备注

如果你收到SocketException,使用SocketException.ErrorCode属性来获取特定错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后,请参阅Windows 套接字版本 2 API 错误代码有关错误的详细说明的文档。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

由给定线程启动的所有 i/o 操作被取消时该线程退出。All I/O initiated by a given thread is canceled when that thread exits. 如果在线程退出该操作完成之前,挂起的异步操作可能会失败。A pending asynchronous operation can fail if the thread exits before the operation completes.

备注

state 是用户定义的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。This member outputs trace information when you enable network tracing in your application. 有关详细信息,请参阅在.NET Framework 中进行网络跟踪For more information, see Network Tracing in the .NET Framework.

备注

为异步缓存的执行上下文 (的安全上下文中,被模拟的用户,并在调用上下文)Socket方法。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 后首次使用特定的上下文 (特定于异步Socket方法中,特定Socket实例和特定的回调),以后使用该上下文将看到性能的改进。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

另请参阅

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

重要

此 API 不符合 CLS。

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

public:
 IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
[System.CLSCompliant(false)]
public IAsyncResult BeginReceive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags *  * AsyncCallback * obj -> IAsyncResult

参数

buffers
IList<ArraySegment<Byte>>

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

errorCode
SocketError SocketError SocketError SocketError

一个 SocketError 对象,它存储套接字错误。A SocketError object that stores the socket error.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object Object

一个用户定义的对象,其中包含接收操作的相关信息。A user-defined object that contains information about the receive operation. 当操作完成时,此对象会被传递给 EndReceive(IAsyncResult) 委托。This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

注解

异步BeginReceive完成操作,必须通过调用EndReceive方法。The asynchronous BeginReceive operation must be completed by calling the EndReceive method. 通常情况下,通过调用该方法callback委托。Typically, the method is invoked by the callback delegate.

此方法不会阻止,直到完成该操作。This method does not block until the operation is complete. 若要阻止,直到完成该操作后,使用之一Receive方法重载。To block until the operation is complete, use one of the Receive method overloads.

若要取消挂起BeginReceive,调用Close方法。To cancel a pending BeginReceive, call the Close method.

有关使用异步编程模型的详细信息,请参阅Calling Synchronous Methods AsynchronouslyFor detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

备注

如果你收到SocketException,使用SocketException.ErrorCode属性来获取特定错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后,请参阅Windows 套接字版本 2 API 错误代码有关错误的详细说明的文档。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

由给定线程启动的所有 i/o 操作被取消时该线程退出。All I/O initiated by a given thread is canceled when that thread exits. 如果在线程退出该操作完成之前,挂起的异步操作可能会失败。A pending asynchronous operation can fail if the thread exits before the operation completes.

备注

state 是用户定义的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。This member outputs trace information when you enable network tracing in your application. 有关详细信息,请参阅在.NET Framework 中进行网络跟踪For more information, see Network Tracing in the .NET Framework.

备注

为异步缓存的执行上下文 (的安全上下文中,被模拟的用户,并在调用上下文)Socket方法。The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. 后首次使用特定的上下文 (特定于异步Socket方法中,特定Socket实例和特定的回调),以后使用该上下文将看到性能的改进。After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

另请参阅

适用于