当前位置: 首页>>代码示例>>C#>>正文


C# MonoDevelop.GetAllProjects方法代码示例

本文整理汇总了C#中MonoDevelop.GetAllProjects方法的典型用法代码示例。如果您正苦于以下问题:C# MonoDevelop.GetAllProjects方法的具体用法?C# MonoDevelop.GetAllProjects怎么用?C# MonoDevelop.GetAllProjects使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MonoDevelop的用法示例。


在下文中一共展示了MonoDevelop.GetAllProjects方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateSolutionInfo

		Task<SolutionInfo> CreateSolutionInfo (MonoDevelop.Projects.Solution solution, CancellationToken token)
		{
			return Task.Run (async delegate {
				var projects = new ConcurrentBag<ProjectInfo> ();
				var mdProjects = solution.GetAllProjects ();
				projectionList.Clear ();
				solutionData = new SolutionData ();
				List<Task> allTasks = new List<Task> ();
				foreach (var proj in mdProjects) {
					if (token.IsCancellationRequested)
						return null;
					var netProj = proj as MonoDevelop.Projects.DotNetProject;
					if (netProj != null && !netProj.SupportsRoslyn)
						continue;
					var tp = LoadProject (proj, token).ContinueWith (t => {
						if (!t.IsCanceled)
							projects.Add (t.Result);
					});
					allTasks.Add (tp);
				}
				await Task.WhenAll (allTasks.ToArray ());
				if (token.IsCancellationRequested)
					return null;
				var modifiedWhileLoading = modifiedProjects = new List<MonoDevelop.Projects.DotNetProject> ();
				var solutionInfo = SolutionInfo.Create (GetSolutionId (solution), VersionStamp.Create (), solution.FileName, projects);
				foreach (var project in modifiedWhileLoading) {
					if (solution.ContainsItem (project)) {
						return await CreateSolutionInfo (solution, token).ConfigureAwait (false);
					}
				}

				lock (addLock) {
					if (!added) {
						added = true;
						OnSolutionAdded (solutionInfo);
					}
				}
				return solutionInfo;
			});
		}
开发者ID:mono,项目名称:monodevelop,代码行数:40,代码来源:MonoDevelopWorkspace.cs

示例2: CreateSolutionInfo

		async Task<SolutionInfo> CreateSolutionInfo (MonoDevelop.Projects.Solution solution, CancellationToken token)
		{
			var projects = new ConcurrentBag<ProjectInfo> ();
			var mdProjects = solution.GetAllProjects ().OfType<MonoDevelop.Projects.DotNetProject> ();
			projectionList.Clear ();
			solutionData = new SolutionData ();

			List<Task> allTasks = new List<Task> ();
			foreach (var proj in mdProjects) {
				if (token.IsCancellationRequested)
					return null;
				if (!SupportsRoslyn (proj))
					continue;
				var tp = LoadProject (proj, token).ContinueWith (t => {
					if (!t.IsCanceled)
						projects.Add (t.Result);
				});
				allTasks.Add (tp);
			}
			await Task.WhenAll (allTasks.ToArray ());
			if (token.IsCancellationRequested)
				return null;
			var solutionInfo = SolutionInfo.Create (GetSolutionId (solution), VersionStamp.Create (), solution.FileName, projects);
			lock (addLock) {
				if (!added) {
					added = true;
					OnSolutionAdded (solutionInfo);
				}
			}
			return solutionInfo;
		}
开发者ID:anhlehoang410,项目名称:monodevelop,代码行数:31,代码来源:MonoDevelopWorkspace.cs


注:本文中的MonoDevelop.GetAllProjects方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。