Example #1
0
        public double GetVolume()
        {
            EventHandler <GetVolumeCompletedEventArgs> callback = null;
            var tcs = new TaskCompletionSource <double>();

            callback = (sender, args) =>
            {
                RequestState state = PerformOperation(() => { tcs.SetResult(args.Result); });
                if (state != RequestState.Correct)
                {
                    tcs.SetResult(0);
                }
                _systemServiceCient.GetVolumeCompleted -= callback;
            };
            _systemServiceCient.GetVolumeCompleted += callback;
            _systemServiceCient.GetVolumeAsync();
            return(tcs.Task.Result);
        }