Exemplo n.º 1
0
        private RconOperationEventArgs InitResultObject(ManualResetEventSlim locker, AsyncRconOperationDelegate callback, object state)
        {
            RconOperationEventArgs result;

            if (locker == null) //async
            {
                AsyncRconOperationEventArgs asyncResult = new AsyncRconOperationEventArgs();
                asyncResult.Callback = callback;
                asyncResult.State    = state;
                result = asyncResult;
            }
            else //sync
            {
                result        = new RconOperationEventArgs();
                result.Locker = locker;
            }

            //result.OperationId = GetOperationId();

            return(result);
        }
Exemplo n.º 2
0
        private void FinalizeResultObject(int operationId)
        {
            RconOperationEventArgs result;

            lock (_currentOperationsLock)
            {
                result = _currentOperations[operationId];
                _currentOperations.Remove(operationId);
            }

            if (result is AsyncRconOperationEventArgs) //async
            {
                AsyncRconOperationEventArgs asyncResult = (AsyncRconOperationEventArgs)result;
                if (asyncResult.Callback != null)
                {
                    asyncResult.Callback(asyncResult);
                }
            }
            else //sync
            {
                result.Locker.Set();
            }
        }