示例#1
0
            internal SuspendToken(SuspendableObject parent)
            {
                var suspendLevel = System.Threading.Interlocked.Increment(ref parent._suspendLevel);

                _parent = parent;

                if (1 == suspendLevel)
                {
                    try
                    {
                        _parent.OnSuspended();
                    }
                    catch (Exception)
                    {
                        System.Threading.Interlocked.Decrement(ref parent._suspendLevel);
                        _parent = null;
                        throw;
                    }
                }
            }
示例#2
0
 internal TemporaryResumeToken(SuspendableObject parent)
 {
     _parent = parent;
 }
示例#3
0
			internal TemporaryResumeToken(SuspendableObject parent)
			{
				_parent = parent;
			}
示例#4
0
			internal SuspendToken(SuspendableObject parent)
			{
				var suspendLevel = System.Threading.Interlocked.Increment(ref parent._suspendLevel);
				_parent = parent;

				if (1 == suspendLevel)
				{
					try
					{
						_parent.OnSuspended();
					}
					catch (Exception)
					{
						System.Threading.Interlocked.Decrement(ref parent._suspendLevel);
						_parent = null;
						throw;
					}
				}
			}