You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using System; using System.Collections.Generic; using System.Text; using System.Threading;
namespace Apewer.Web {
internal sealed class MiniStreamAsyncResult : IAsyncResult {
object locker = new object(); ManualResetEvent handle; bool completed;
internal byte[] Buffer = null; internal int Offset = 0; internal int Count = 0; internal AsyncCallback Callback = null; internal object State = null; internal int SynchRead = 0; internal Exception Error = null;
public void Complete(Exception e) { Error = e; Complete(); }
public void Complete() { lock (locker) { if (completed) return;
completed = true; if (handle != null) handle.Set();
if (Callback != null) Callback.BeginInvoke(this, null, null); } }
public object AsyncState { get { return State; } }
public WaitHandle AsyncWaitHandle { get { lock (locker) { if (handle == null) handle = new ManualResetEvent(completed); }
return handle; } }
public bool CompletedSynchronously { get { return (SynchRead == Count); } }
public bool IsCompleted { get { lock (locker) { return completed; } } }
}
}
|