コード例 #1
0
        public async Task <R> CallAsyncFuncAndRecordStatsAsync <R>(Func <Task <R> > func, bool hideExceptions)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                var result = await func();

                SunnyDay.AddCallTiming(sw.ElapsedTicks);
                return(result);
            }
            catch (Exception e)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
                if (!hideExceptions)
                {
                    if (!_exceptionHandler(e))
                    {
                        throw;
                    }
                }
                return(default(R));
            }
        }
コード例 #2
0
ファイル: CallStats.cs プロジェクト: edisonzzzzzhang/wcf-1
        public void CallActionAndRecordStats(Action action)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                action();
                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception e)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
            }
        }
コード例 #3
0
ファイル: CallStats.cs プロジェクト: edisonzzzzzhang/wcf-1
        public async Task CallAsyncFuncAndRecordStatsAsync(Func <Task> func)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                await func();

                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception e)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
            }
        }
コード例 #4
0
ファイル: CallStats.cs プロジェクト: edisonzzzzzhang/wcf-1
        public T CallFuncAndRecordStats <T, P>(Func <P, T> func, P param)
        {
            T         result = default(T);
            Stopwatch sw     = new Stopwatch();

            try
            {
                sw.Restart();
                result = func(param);
                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception e)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
            }
            return(result);
        }
コード例 #5
0
        public void CallActionAndRecordStats(Action action, bool hideExceptions = false)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                action();
                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
                if (!hideExceptions)
                {
                    throw;
                }
            }
        }
コード例 #6
0
        public async Task CallAsyncFuncAndRecordStatsAsync <P>(Func <P, Task> func, P param, bool hideExceptions = false)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                await func(param);

                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
                if (!hideExceptions)
                {
                    throw;
                }
            }
        }
コード例 #7
0
        public T CallFuncAndRecordStats <T>(Func <T> func, bool hideExceptions = false)
        {
            T         result = default(T);
            Stopwatch sw     = new Stopwatch();

            try
            {
                sw.Restart();
                result = func();
                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
                if (!hideExceptions)
                {
                    throw;
                }
            }
            return(result);
        }
コード例 #8
0
        public async Task CallAsyncFuncAndRecordStatsAsync(Func <Task> func, bool hideExceptions)
        {
            Stopwatch sw = new Stopwatch();

            try
            {
                sw.Restart();
                await func();

                SunnyDay.AddCallTiming(sw.ElapsedTicks);
            }
            catch (Exception e)
            {
                RainyDay.AddCallTiming(sw.ElapsedTicks);
                if (!hideExceptions)
                {
                    if (!_exceptionHandler(e))
                    {
                        throw;
                    }
                }
            }
        }