本文整理汇总了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;
});
}
示例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;
}