コード例 #1
0
            static bool HandleEndUpdate(IAsyncResult result)
            {
                UpdateAsyncResult thisPtr = (UpdateAsyncResult)result.AsyncState;

                if (thisPtr.isTransacted)
                {
                    thisPtr.channel.EndTransactedUpdate(result);
                }
                else
                {
                    thisPtr.channel.EndUpdate(result);
                }
                return(true);
            }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
 public void EndUpdate(IAsyncResult result)
 {
     UpdateAsyncResult.End(result);
 }