src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts/AbstractTaskService/_computeWorkspaceTasks
class AbstractTaskService:	protected _computeWorkspaceTasks(runSource: TaskRunSource = TaskRunSource.User): Promise<Map<string, IWorkspaceFolderTaskResult>> {
		const promises: Promise<IWorkspaceFolderTaskResult | undefined>[] = [];
		for (const folder of this.workspaceFolders) {
			promises.push(this._computeWorkspaceFolderTasks(folder, runSource).then((value) => value, () => undefined));
		}
		return Promise.all(promises).then(async (values) => {
			const result = new Map<string, IWorkspaceFolderTaskResult>();
			for (const value of values) {
				if (value) {
					result.set(value.workspaceFolder.uri.toString(), value);
				}
			}

			const folder = await this._getAFolder();
			if (this._contextService.getWorkbenchState() !== WorkbenchState.EMPTY) {
				const workspaceFileTasks = await this._computeWorkspaceFileTasks(folder, runSource).then((value) => value, () => undefined);
				if (workspaceFileTasks && this._workspace && this._workspace.configuration) {
					result.set(this._workspace.configuration.toString(), workspaceFileTasks);
				}
			}

			const userTasks = await this._computeUserTasks(folder, runSource).then((value) => value, () => undefined);
			if (userTasks) {
				result.set(USER_TASKS_GROUP_KEY, userTasks);
			}
			return result;
		});
	}