Exemplo n.º 1
0
 public FilterTask FindFilterTask(string strName)
 {
     _filterTaskLock.EnterReadLock();
     try
     {
         FilterTask task = (FilterTask)this.FilterTasks[strName];
         if (task != null)
         {
             task.Touch();
         }
         return(task);
     }
     finally
     {
         _filterTaskLock.ExitReadLock();
     }
 }
Exemplo n.º 2
0
        // parameters:
        //      task    要设置的 FilterTask 对象。如果为 null,表示要删除名字为 strName 的对象
        public void SetFilterTask(string strName, FilterTask task)
        {
            _filterTaskLock.EnterWriteLock();
            try
            {
                FilterTask old_task = (FilterTask)this.FilterTasks[strName];
                if (old_task == task)
                {
                    if (old_task != null)
                    {
                        old_task.Touch();
                    }
                    return;
                }

                // 删除任务所创建的结果集文件
                if (old_task != null)
                {
                    old_task.DeleteTempFiles(
                        // this.GetTempDir()
                        this.TempDir
                        );
                }

                // TODO: 是否要定义一个极限值,不让元素数超过这个数目
                if (task == null)
                {
                    this.FilterTasks.Remove(strName);
                }
                else
                {
                    task.Touch();
                    this.FilterTasks[strName] = task;
                }
            }
            finally
            {
                _filterTaskLock.ExitWriteLock();
            }
        }
Exemplo n.º 3
0
        // parameters:
        //      task    要设置的 FilterTask 对象。如果为 null,表示要删除名字为 strName 的对象
        public void SetFilterTask(string strName, FilterTask task)
        {
            _filterTaskLock.EnterWriteLock();
            try
            {
                FilterTask old_task = (FilterTask)this.FilterTasks[strName];
                if (old_task == task)
                {
                    if (old_task != null)
                        old_task.Touch();
                    return;
                }

                // 删除任务所创建的结果集文件
                if (old_task != null)
                    old_task.DeleteTempFiles(
                        // this.GetTempDir()
                        this.TempDir
                        );

                // TODO: 是否要定义一个极限值,不让元素数超过这个数目
                if (task == null)
                    this.FilterTasks.Remove(strName);
                else
                {
                    task.Touch();
                    this.FilterTasks[strName] = task;
                }
            }
            finally
            {
                _filterTaskLock.ExitWriteLock();
            }
        }