Example #1
0
        public WebData GetData(string taskID)
        {
            WebDataWrapper wrapper = GetWrapper(taskID);

            if (wrapper == null)
            {
                return(null);
            }

            // 将缓冲的数据兑现到 WebData 中
            wrapper.Flush();
            return(wrapper.WebData);
        }
Example #2
0
        // 追加数据
        WebDataWrapper AddWrapper(string taskID, WebData data)
        {
            lock (_syncRoot)
            {
                WebDataWrapper wrapper = null;
                if (_webData_table.ContainsKey(taskID) == false)
                {
                    wrapper = new WebDataWrapper();
                    _webData_table[taskID] = wrapper;
                }
                else
                {
                    wrapper = (WebDataWrapper)_webData_table[taskID];
                }

                wrapper.Append(data);
                return(wrapper);
            }
        }
Example #3
0
        // 将距离当前时间 delta 以上的对象清除
        public void Clean(TimeSpan delta)
        {
            lock (_syncRoot)
            {
                DateTime      now         = DateTime.Now;
                List <string> delete_keys = new List <string>();
                foreach (string key in _webData_table.Keys)
                {
                    WebDataWrapper wrapper = (WebDataWrapper)_webData_table[key];
                    if (now - wrapper.LastTime > delta)
                    {
                        delete_keys.Add(key);
                    }
                }

                foreach (string key in delete_keys)
                {
                    _webData_table.Remove(key);
                }
            }
        }
Example #4
0
        // 追加数据
        public WebData AddData(string taskID, WebData data)
        {
            WebDataWrapper wrapper = AddWrapper(taskID, data);

            return(wrapper.WebData);
        }