It depends on how smart the compiler is.
, this , .
, , , this alive:
private void Receive()
{
ATcpState state = this.state;
AsyncCallback ReceiveCallback = delegate(IAsyncResult ar)
{
try
{
state.BytesReceived = state.Socket.EndReceive(ar);
}
catch (Exception e)
{
}
};
try
{
state.Socket.BeginReceive(state.Buffer, 0, state.BufferSize, 0,
ReceiveCallback, null);
}
catch (Exception e)
{
}
}
, :
private readonly ATcpState state = new ATcpState();
private void Receive()
{
AsyncCallback ReceiveCallback = delegate(IAsyncResult ar)
{
try
{
state.BytesReceived = state.Socket.EndReceive(ar);
}
catch (Exception e)
{
}
};
try
{
state.Socket.BeginReceive(state.Buffer, 0, state.BufferSize, 0,
ReceiveCallback, null);
}
catch (Exception e)
{
}
}
: ? , this, state, state.Socket ? , ( , ).
, BeginReceive/EndReceive,
, (Socket.BeginReceive) System.Net.Sockets.BaseOverlappedAsyncResult.PinUnmanagedObjects.
source
share