Esempio n. 1
0
        private void DestroyTarget(TargetDestroyedResponse e)
        {
            if (!_targets.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = _targets[e.TargetId];

            if (!target.InitilizedTaskWrapper.Task.IsCompleted)
            {
                target.InitilizedTaskWrapper.SetResult(false);
            }
            _targets.Remove(e.TargetId);

            TargetDestroyed?.Invoke(this, new TargetChangedArgs()
            {
                Target = target
            });
        }
Esempio n. 2
0
        private async Task DestroyTargetAsync(TargetDestroyedResponse e)
        {
            if (!TargetsMap.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = TargetsMap[e.TargetId];

            TargetsMap.Remove(e.TargetId);

            target.CloseTaskWrapper.TrySetResult(true);

            if (await target.InitializedTask.ConfigureAwait(false))
            {
                TargetDestroyed?.Invoke(this, new TargetChangedArgs
                {
                    Target = target
                });
            }
        }
Esempio n. 3
0
        private async Task DestroyTargetAsync(TargetDestroyedResponse e)
        {
            if (!_targets.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = _targets[e.TargetId];

            _targets.Remove(e.TargetId);

            if (!target.CloseTaskWrapper.Task.IsCompleted)
            {
                target.CloseTaskWrapper.SetResult(true);
            }
            if (await target.InitializedTask)
            {
                TargetDestroyed?.Invoke(this, new TargetChangedArgs
                {
                    Target = target
                });
            }
        }