public void Read(ReadCallback callback, int timeout) { var d = new _ReadDelegate(Read); var asyncState = new AsyncState(d, callback); d.BeginInvoke(timeout, _EndRead, asyncState); }