//---------------------------------------------------------------------
        // Count Cache
        async Task <int> IGrainDCacheMapCounter.countMap()
        {
            ListCountTask.Clear();

            for (int i = 1; i <= MapCount; i++)
            {
                SB.Clear();
                SB.Append(KeyTitle);
                SB.Append("_");
                SB.Append(i);
                var grain_map = this.GrainFactory.GetGrain <IGrainDCacheMap>(SB.ToString());
                ListCountTask.Add(grain_map.getMapCount());
            }

            await Task.WhenAll(ListCountTask);

            MapCacheDataCount = 0;
            foreach (var i in ListCountTask)
            {
                if (i.IsCompleted)
                {
                    MapCacheDataCount += ((Task <int>)i).Result;
                }
            }

            ListCountTask.Clear();

            return(MapCacheDataCount);
        }
        //---------------------------------------------------------------------
        public override Task OnDeactivateAsync()
        {
            if (SB != null)
            {
                SB.Clear();
                SB = null;
            }

            if (ListCountTask != null)
            {
                ListCountTask.Clear();
                ListCountTask = null;
            }

            return(base.OnDeactivateAsync());
        }