CSharpUtils.Threading.Coroutine.YieldInPool C# (CSharp) Method

YieldInPool() public method

public YieldInPool ( ) : void
return void
		public void YieldInPool()
		{
			//Debug.WriteLine("YieldInPool");
#if false
			if (Pool == null)
			{
				throw(new Exception("Pool can't be null"));
			}
			if (Pool.CurrentCoroutine == null)
			{
				throw (new Exception("Pool.CurrentCoroutine can't be null"));
			}
			if (Pool.CallerContinueEvent == null)
			{
				throw (new Exception("Pool.CallerContinueEvent can't be null"));
			}
			if (Pool.CurrentCoroutine.CoroutineContinueEvent == null)
			{
				throw (new Exception("Pool.CurrentCoroutine.CoroutineContinueEvent can't be null"));
			}
#endif

			if (Pool.CurrentCoroutine == null)
			{
				throw (new InvalidOperationException("Can't call YieldInPool outside the ExecuteStep"));
			}

			if (Pool.CurrentCoroutine != this)
			{
				Debug.WriteLine("Pool.CurrentCoroutine != this");
			}

			CoroutineContinueEvent.Reset();
			Pool.CallerContinueEvent.Set();
			//Pool.CurrentCoroutine.CoroutineContinueEvent_WaitOne();
			CoroutineContinueEvent_WaitOne();
		}

Usage Example

Example #1
0
 /// <summary>
 ///
 /// </summary>
 public void YieldInPool()
 {
     CurrentCoroutine.YieldInPool();
 }