Example #1
0
        internal void SetStatus(ELoopStatus iTarget)
        {
            switch (iTarget)
            {
            //case ELoopStatus.Unknown:
            //    break;

            case ELoopStatus.IsWaiting:
            {
                if (ThreadLocalInformation.GetUniqueID() != UniqueThreadID)
                {
                    throw new ArgumentException(StringHelper.DefaultJoin("ThreadLocalInformation.GetUniqueID() != UniqueThreadID", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }

                switch (GetStatus())
                {
                //case ELoopStatus.IsWaiting:
                //    break;

                case ELoopStatus.Unknown:
                //break;

                //case ELoopStatus.IsInvoking:
                //    break;

                //case ELoopStatus.IsStopping:
                //    break;

                case ELoopStatus.IsPausing:
                    _status = iTarget;
                    break;

                //case ELoopStatus.IsStopped:
                //    break;

                default:
                    throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }
            }
            break;

            case ELoopStatus.IsInvoking:
            {
                switch (GetStatus())
                {
                case ELoopStatus.Unknown:
                //break;

                case ELoopStatus.IsWaiting:
                //break;

                case ELoopStatus.IsPausing:
                //break;

                case ELoopStatus.IsStopping:
                    _status = iTarget;
                    break;

                case ELoopStatus.IsInvoking:
                    break;

                //case ELoopStatus.IsStopped:
                //    break;

                default:
                    throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }
            }
            break;

            case ELoopStatus.IsPausing:
            {
                if (ThreadLocalInformation.GetUniqueID() == UniqueThreadID)
                {
                    throw new ArgumentException(StringHelper.DefaultJoin("ThreadLocalInformation.GetUniqueID() == UniqueThreadID", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }

                switch (GetStatus())
                {
                //case ELoopStatus.Unknown:
                //    break;

                case ELoopStatus.IsWaiting:
                //break;

                case ELoopStatus.IsPausing:
                    break;

                case ELoopStatus.IsInvoking:
                //break;

                case ELoopStatus.IsStopping:
                    _status = iTarget;
                    break;

                //case ELoopStatus.IsStopped:
                //    break;

                default:
                    throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }
            }
            break;

            case ELoopStatus.IsStopping:
            {
                if (ThreadLocalInformation.GetUniqueID() == UniqueThreadID)
                {
                    throw new ArgumentException(StringHelper.DefaultJoin("ThreadLocalInformation.GetUniqueID() == UniqueThreadID", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }

                switch (GetStatus())
                {
                //case ELoopStatus.Unknown:
                //    break;

                case ELoopStatus.IsWaiting:
                //break;

                case ELoopStatus.IsInvoking:
                //break;

                case ELoopStatus.IsPausing:
                    _status = iTarget;
                    break;

                case ELoopStatus.IsStopping:
                    break;

                //case ELoopStatus.IsStopped:
                //    break;

                default:
                    throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }
            }
            break;

            case ELoopStatus.IsStopped:
            {
                if (ThreadLocalInformation.GetUniqueID() != UniqueThreadID)
                {
                    throw new ArgumentException(StringHelper.DefaultJoin("ThreadLocalInformation.GetUniqueID() != UniqueThreadID", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }

                switch (GetStatus())
                {
                //case ELoopStatus.Unknown:
                //    break;

                //case ELoopStatus.IsWaiting:
                //    break;

                case ELoopStatus.IsInvoking:
                //break;

                case ELoopStatus.IsPausing:
                //break;

                case ELoopStatus.IsStopping:
                    _status = iTarget;
                    break;

                //case ELoopStatus.IsStopped:
                //    break;

                default:
                    throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
                }
            }
            break;

            default:
                throw new ArgumentException(StringHelper.DefaultJoin("default:", ThreadLocalInformation.GetUniqueID(), UniqueThreadID, iTarget, GetStatus()));
            }
        }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 public LoopRecord()
 {
     UniqueThreadID = ThreadLocalInformation.GetUniqueID();
     _status        = ELoopStatus.Unknown;
 }