static bool HandleEndUpdate(IAsyncResult result) { UpdateAsyncResult thisPtr = (UpdateAsyncResult)result.AsyncState; if (thisPtr.isTransacted) { thisPtr.channel.EndTransactedUpdate(result); } else { thisPtr.channel.EndUpdate(result); } return(true); }
/// <summary> /// Starts updating the Particle effect asynchronously. /// </summary> /// <param name="deltaSeconds">Elapsed frame time in whole and fractional seconds.</param> /// <param name="callback">An AyncCallback method that will be invoked when the update completes.</param> public IAsyncResult BeginUpdate(float deltaSeconds, AsyncCallback callback) { UpdateAsyncResult asyncResult = new UpdateAsyncResult(callback, null); ThreadPool.QueueUserWorkItem((r) => { UpdateAsyncResult result = (UpdateAsyncResult)r; this.Update(deltaSeconds); result.OnCompleted(); }, asyncResult); return asyncResult; }
public void EndUpdate(IAsyncResult result) { UpdateAsyncResult.End(result); }