code: def start_task(self, row, scan=True):
          '''启动下载任务.
  
          将任务状态设定为Downloading, 如果没有超过最大任务数的话;
          否则将它设定为Waiting.
          '''
          if not row or row[STATE_COL] in RUNNING_STATES :
              return
          row[STATE_COL] = State.WAITING
          row[STATENAME_COL] = StateNames[State.WAITING]
          self.update_task_db(row)
          if scan:
              self.scan_tasks(f start_task(self, row, scan=True):
          '''启动下载任务.
  
          将任务状态设定为Downloading, 如果没有超过最大任务数的话;
          否则将它设定为Waiting.
          '''
          if not row or row[STATE_COL] in RUNNING_STATES :
              return
          row[STATE_COL] = State.WAITING
          row[STATENAME_COL] = StateNames[State.WAITING]
          self.update_task_db(row)
          if scan:
              self.scan_tasks()
docs: 启动下载任务.
  
          将任务状态设定为Downloading, 如果没有超过最大任务数的话;
          否则将它设定为Waiting.