Browse Source

Rename Task -> SDTask to resolve the conflict with System.Threading.Tasks.Task.

newNRvisualizers
Daniel Grunwald 14 years ago
parent
commit
91374e075e
  1. 4
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
  2. 5
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs
  3. 2
      src/Main/Base/Project/Src/Commands/BuildCommands.cs
  4. 4
      src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
  5. 8
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
  6. 28
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskView.cs
  7. 4
      src/Main/Base/Project/Src/Project/BuildEngine.cs
  8. 4
      src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs
  9. 9
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  10. 5
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbViewModel.cs
  11. 2
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs
  12. 55
      src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/EditorContext.cs
  13. 10
      src/Main/Base/Project/Src/Services/Tasks/ErrorPainter.cs
  14. 6
      src/Main/Base/Project/Src/Services/Tasks/Task.cs
  15. 6
      src/Main/Base/Project/Src/Services/Tasks/TaskEventHandler.cs
  16. 34
      src/Main/Base/Project/Src/Services/Tasks/TaskService.cs
  17. 3
      src/Main/Base/Project/Src/Util/ExtensionMethods.cs

4
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs

@ -5,8 +5,10 @@ using System; @@ -5,8 +5,10 @@ using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Threading;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
@ -85,7 +87,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -85,7 +87,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.cancellationTokenSourceForPopupBeingOpened = new CancellationTokenSource();
var cancellationToken = cancellationTokenSourceForPopupBeingOpened.Token;
try {
await System.Threading.Tasks.Task.WhenAll(popupVM.LoadActionsAsync(cancellationToken), popupVM.LoadHiddenActionsAsync(cancellationToken));
await Task.WhenAll(popupVM.LoadActionsAsync(cancellationToken), popupVM.LoadHiddenActionsAsync(cancellationToken));
} catch (OperationCanceledException) {
return;
}

5
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs

@ -67,7 +67,7 @@ namespace SearchAndReplace @@ -67,7 +67,7 @@ namespace SearchAndReplace
public IDisposable Subscribe(IObserver<SearchedFile> observer)
{
LoggingService.Debug("Parallel FindAll starting");
var task = new System.Threading.Tasks.Task(
var task = Task.Factory.StartNew(
delegate {
var list = fileList.ToList();
ThrowIfCancellationRequested();
@ -82,7 +82,6 @@ namespace SearchAndReplace @@ -82,7 +82,6 @@ namespace SearchAndReplace
observer.OnCompleted();
this.Dispose();
});
task.Start();
return this;
}
@ -109,7 +108,7 @@ namespace SearchAndReplace @@ -109,7 +108,7 @@ namespace SearchAndReplace
}
if (exceptions.Count > 0) break;
FileName file = files[i];
queue.Enqueue(System.Threading.Tasks.Task.Factory.StartNew(() => SearchFile(file)));
queue.Enqueue(Task.Factory.StartNew(() => SearchFile(file)));
}
while (queue.Count > 0) {
HandleResult(queue.Dequeue(), observer, exceptions, files);

2
src/Main/Base/Project/Src/Commands/BuildCommands.cs

@ -85,7 +85,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -85,7 +85,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
/// shows the <see cref="ErrorListPad"/>.</remarks>
public static void AddNoSingleFileCompilationError()
{
TaskService.Add(new Task(null, StringParser.Parse("${res:BackendBindings.ExecutionManager.NoSingleFileCompilation}"), 0, 0, TaskType.Error));
TaskService.Add(new SDTask(null, StringParser.Parse("${res:BackendBindings.ExecutionManager.NoSingleFileCompilation}"), 0, 0, TaskType.Error));
WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront();
}
}

4
src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs

@ -134,7 +134,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -134,7 +134,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public BuildResults BuildResults = null;
void AddTask(Task task)
void AddTask(SDTask task)
{
switch (task.TaskType) {
case TaskType.Warning:
@ -200,7 +200,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -200,7 +200,7 @@ namespace ICSharpCode.SharpDevelop.Gui
taskView.BeginUpdate();
taskView.ClearTasks();
foreach (Task task in TaskService.Tasks) {
foreach (SDTask task in TaskService.Tasks) {
AddTask(task);
}

8
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -163,7 +163,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -163,7 +163,7 @@ namespace ICSharpCode.SharpDevelop.Gui
this.taskView.ClearTasks();
foreach (Task t in TaskService.CommentTasks) {
foreach (SDTask t in TaskService.CommentTasks) {
this.AddItem(t);
}
@ -171,7 +171,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -171,7 +171,7 @@ namespace ICSharpCode.SharpDevelop.Gui
this.taskView.EndUpdate();
}
void AddItem(Task item)
void AddItem(SDTask item)
{
foreach (KeyValuePair<string, bool> pair in displayedTokens) {
if (item.Description.StartsWith(pair.Key) && pair.Value && IsInScope(item))
@ -179,7 +179,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -179,7 +179,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
bool IsInScope(Task item)
bool IsInScope(SDTask item)
{
var current = GetCurrentClass();
var itemClass = GetCurrentClass(item);
@ -231,7 +231,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -231,7 +231,7 @@ namespace ICSharpCode.SharpDevelop.Gui
return null;
}
IUnresolvedTypeDefinition GetCurrentClass(Task item)
IUnresolvedTypeDefinition GetCurrentClass(SDTask item)
{
// Tasks are created by parsing, so the parse information for item.FileName should already be present.
// If they aren't, that's because the file might have been deleted/renamed in the meantime.

28
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskView.cs

@ -39,12 +39,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -39,12 +39,12 @@ namespace ICSharpCode.SharpDevelop.Gui
public string DefaultContextMenuAddInTreeEntry { get; set; }
public Task SelectedTask {
public SDTask SelectedTask {
get {
if (this.FocusedItem==null) {
return null;
}
return (Task)this.FocusedItem.Tag;
return (SDTask)this.FocusedItem.Tag;
}
}
@ -54,10 +54,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -54,10 +54,10 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
public IEnumerable<Task> SelectedTasks {
public IEnumerable<SDTask> SelectedTasks {
get {
foreach (ListViewItem item in this.SelectedItems) {
yield return (Task)item.Tag;
yield return (SDTask)item.Tag;
}
}
}
@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -65,7 +65,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public void CopySelectionToClipboard()
{
StringBuilder b = new StringBuilder();
foreach (Task t in this.SelectedTasks) {
foreach (SDTask t in this.SelectedTasks) {
if (b.Length > 0) b.AppendLine();
b.Append(t.Description);
if (!string.IsNullOrEmpty(t.FileName)) {
@ -187,7 +187,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -187,7 +187,7 @@ namespace ICSharpCode.SharpDevelop.Gui
ListViewItem item = GetItemAt(e.X, e.Y);
if (item != currentListViewItem) {
if (item != null) {
Task task = (Task)item.Tag;
SDTask task = (SDTask)item.Tag;
string description = task.Description;
if (description != null) {
description = description.Replace("\t", " ");
@ -238,9 +238,9 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -238,9 +238,9 @@ namespace ICSharpCode.SharpDevelop.Gui
} else {
pos = PointToClient(new Point(x, y));
}
string entry = ((Task)this.SelectedItems[0].Tag).ContextMenuAddInTreeEntry;
string entry = ((SDTask)this.SelectedItems[0].Tag).ContextMenuAddInTreeEntry;
for (int i = 1; i < this.SelectedItems.Count; i++) {
string entry2 = ((Task)this.SelectedItems[i].Tag).ContextMenuAddInTreeEntry;
string entry2 = ((SDTask)this.SelectedItems[i].Tag).ContextMenuAddInTreeEntry;
if (entry2 != entry) {
entry = null;
break;
@ -263,7 +263,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -263,7 +263,7 @@ namespace ICSharpCode.SharpDevelop.Gui
this.Items.Clear();
}
public void AddTask(Task task)
public void AddTask(SDTask task)
{
string fileName = task.FileName;
string path = task.FileName;
@ -319,22 +319,22 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -319,22 +319,22 @@ namespace ICSharpCode.SharpDevelop.Gui
return FormattedDescription.Replace("\n", " ");
}
public void RemoveTask(Task task)
public void RemoveTask(SDTask task)
{
for (int i = 0; i < Items.Count; ++i) {
if ((Task)Items[i].Tag == task) {
if ((SDTask)Items[i].Tag == task) {
Items.RemoveAt(i);
break;
}
}
}
public void UpdateResults(IEnumerable<Task> taskSet)
public void UpdateResults(IEnumerable<SDTask> taskSet)
{
this.BeginUpdate();
this.ClearTasks();
foreach (Task task in taskSet) {
foreach (SDTask task in taskSet) {
this.AddTask(task);
}
@ -393,7 +393,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -393,7 +393,7 @@ namespace ICSharpCode.SharpDevelop.Gui
protected int CompareLineNumbers(ListViewItem a, ListViewItem b)
{
return ((Task)a.Tag).Line.CompareTo(((Task)b.Tag).Line);
return ((SDTask)a.Tag).Line.CompareTo(((SDTask)b.Tag).Line);
}
protected int CompareAsText(ListViewItem a, ListViewItem b, TaskViewCols col)

4
src/Main/Base/Project/Src/Project/BuildEngine.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -44,7 +44,7 @@ namespace ICSharpCode.SharpDevelop.Project
WorkbenchSingleton.StatusBar.SetMessage(Core.ResourceService.GetString("MainWindow.CompilerMessages.MSBuildAlreadyRunning"));
BuildError error = new BuildError(null, Core.ResourceService.GetString("MainWindow.CompilerMessages.MSBuildAlreadyRunning"));
results.Add(error);
TaskService.Add(new Task(error));
TaskService.Add(new SDTask(error));
results.Result = BuildResultCode.MSBuildAlreadyRunning;
if (options.Callback != null) {
options.Callback(results);
@ -110,7 +110,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -110,7 +110,7 @@ namespace ICSharpCode.SharpDevelop.Project
{
WorkbenchSingleton.SafeThreadAsyncCall(
delegate {
TaskService.Add(new Task(error));
TaskService.Add(new SDTask(error));
});
}

4
src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs

@ -146,9 +146,9 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -146,9 +146,9 @@ namespace ICSharpCode.SharpDevelop.Parser
);
}
System.Threading.Tasks.Task ResolveReferencesAsync(ICollection<ProjectItem> projectItems, IProgressMonitor progressMonitor)
Task ResolveReferencesAsync(ICollection<ProjectItem> projectItems, IProgressMonitor progressMonitor)
{
return System.Threading.Tasks.Task.Factory.StartNew(
return Task.Run(
delegate {
var referenceItems = project.ResolveAssemblyReferences(progressMonitor.CancellationToken);
const double assemblyResolvingProgress = 0.3; // 30% asm resolving, 70% asm loading

9
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -23,8 +23,6 @@ using ICSharpCode.SharpDevelop.Project; @@ -23,8 +23,6 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Parser
{
using Task = System.Threading.Tasks.Task;
/// <summary>
/// Stores the compilation units for files.
/// </summary>
@ -94,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -94,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Parser
timer.Stop();
}
static System.Threading.Tasks.Task lastParseRun;
static Task lastParseRun;
static void timer_Tick(object sender, EventArgs e)
{
@ -554,7 +552,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -554,7 +552,7 @@ namespace ICSharpCode.SharpDevelop.Parser
SnapshotFileContentForAsyncOperation(ref fileContent, out lookupOpenFileOnTargetThread);
// TODO: don't use background task if fileContent was specified and up-to-date parse info is available
return System.Threading.Tasks.Task.Factory.StartNew(
return Task.Run(
delegate {
try {
if (lookupOpenFileOnTargetThread) {
@ -734,7 +732,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -734,7 +732,7 @@ namespace ICSharpCode.SharpDevelop.Parser
/// </returns>
/// <remarks>
/// This method is thread-safe. This parser being used may involve locking or waiting for the main thread,
/// so waiting for the task can cause deadlocks.
/// so waiting for the task can cause deadlocks. (however, using C# 5 'await' is safe)
/// </remarks>
public static Task<ParseInformation> ParseAsync(FileName fileName, ITextSource fileContent = null)
{
@ -766,6 +764,7 @@ namespace ICSharpCode.SharpDevelop.Parser @@ -766,6 +764,7 @@ namespace ICSharpCode.SharpDevelop.Parser
/// <summary>
/// Async version of ParseFile().
/// </summary>
/// <remarks><inheritdoc cref="ParseAsync"/></remarks>
public static Task<IParsedFile> ParseFileAsync(FileName fileName, ITextSource fileContent = null)
{
return GetFileEntry(fileName, true).ParseFileAsync(fileContent);

5
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsBulbViewModel.cs

@ -6,6 +6,7 @@ using System.Collections.ObjectModel; @@ -6,6 +6,7 @@ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
@ -38,7 +39,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -38,7 +39,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
this.ActionVisibleChangedCommand = new ActionVisibleChangedCommand(model);
}
public async System.Threading.Tasks.Task LoadActionsAsync(CancellationToken cancellationToken)
public async Task LoadActionsAsync(CancellationToken cancellationToken)
{
this.Actions.Clear();
foreach (var action in await Model.GetVisibleActionsAsync(cancellationToken)) {
@ -46,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -46,7 +47,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
}
}
public async System.Threading.Tasks.Task LoadHiddenActionsAsync(CancellationToken cancellationToken)
public async Task LoadHiddenActionsAsync(CancellationToken cancellationToken)
{
this.HiddenActions.Clear();
foreach (var action in await Model.GetHiddenActionsAsync(cancellationToken)) {

2
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/ContextActionsService.cs

@ -15,8 +15,6 @@ using ICSharpCode.SharpDevelop.Refactoring; @@ -15,8 +15,6 @@ using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.SharpDevelop.Refactoring
{
using Task = System.Threading.Tasks.Task;
/// <summary>
/// Provides context actions available for current line of the editor.
/// </summary>

55
src/Main/Base/Project/Src/Services/RefactoringService/ContextActions/EditorContext.cs

@ -5,6 +5,8 @@ using System; @@ -5,6 +5,8 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using ICSharpCode.Core;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Editor;
@ -23,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -23,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
/// </summary>
public class EditorContext
{
object syncRoot;
readonly ITextEditor editor;
/// <summary>
@ -54,47 +57,29 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -54,47 +57,29 @@ namespace ICSharpCode.SharpDevelop.Refactoring
get { return caretOffset; }
}
volatile bool inInitializationPhase = true;
System.Threading.Tasks.Task<ParseInformation> parseInformation;
System.Threading.Tasks.Task<ICompilation> compilation;
Task<ParseInformation> parseInformation;
ICompilation compilation;
/// <summary>
/// ParseInformation for the file.
/// Gets the ParseInformation for the file.
/// </summary>
public ParseInformation ParseInformation {
get {
CheckForDeadlock();
return parseInformation.Result;
}
}
public ICompilation Compilation {
get {
CheckForDeadlock();
return compilation.Result;
}
}
void CheckForDeadlock()
/// <remarks><inheritdoc cref="ParserService.ParseAsync"/></remarks>
public Task<ParseInformation> GetParseInformationAsync()
{
if (inInitializationPhase) {
var workbench = WorkbenchSingleton.Workbench;
if (workbench != null) {
if (workbench.MainWindow.Dispatcher.CheckAccess()) {
throw new InvalidOperationException("Cannot access this property on the main thread during the EditorContext initialization phase - could cause deadlocks.");
}
}
lock (syncRoot) {
if (parseInformation == null)
parseInformation = ParserService.ParseAsync(this.FileName, this.TextSource);
return parseInformation;
}
}
/// <summary>
/// Waits until the initialization of this editor context is done.
/// This is necessary to avoid deadlocks due to the main thread
/// waiting for the parser service.
/// Gets the ICompilation for the file.
/// </summary>
public System.Threading.Tasks.Task WaitForInitializationAsync()
public Task<ICompilation> GetCompilationAsync()
{
return compilation.ContinueWith(_ => { inInitializationPhase = false; });
var c = LazyInitializer.EnsureInitialized(ref compilation, () => ParserService.GetCompilationForFile(this.FileName));
return Task.FromResult(c);
}
/// <summary>
@ -111,17 +96,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -111,17 +96,9 @@ namespace ICSharpCode.SharpDevelop.Refactoring
throw new ArgumentNullException("editor");
this.editor = editor;
caretOffset = editor.Caret.Offset;
if (caretOffset > 0 && editor.Document.GetCharAt(caretOffset - 1) == ';') {
// If caret is just after ';', pretend that caret is before ';'
// (works well e.g. for this.Foo();(*caret*) - we want to get "this.Foo()")
// This is equivalent to pretending that ; don't exist, and actually it's not such a bad idea.
caretOffset -= 1;
}
this.FileName = editor.FileName;
this.TextSource = editor.Document.CreateSnapshot();
this.parseInformation = ParserService.ParseAsync(this.FileName, this.TextSource);
this.compilation = parseInformation.ContinueWith(_ => ParserService.GetCompilationForFile(this.FileName));
}
/// <summary>

10
src/Main/Base/Project/Src/Services/Tasks/ErrorPainter.cs

@ -81,7 +81,7 @@ namespace ICSharpCode.SharpDevelop @@ -81,7 +81,7 @@ namespace ICSharpCode.SharpDevelop
ClearErrors();
if (newEnabled) {
foreach (Task task in TaskService.Tasks) {
foreach (SDTask task in TaskService.Tasks) {
AddTask(task);
}
}
@ -109,10 +109,10 @@ namespace ICSharpCode.SharpDevelop @@ -109,10 +109,10 @@ namespace ICSharpCode.SharpDevelop
/// <returns>Returns true when there were markers deleted, false when there were no error markers.</returns>
void ClearErrors()
{
markerService.RemoveAll(marker => marker.Tag is Task);
markerService.RemoveAll(marker => marker.Tag is SDTask);
}
bool CheckTask(Task task)
bool CheckTask(SDTask task)
{
if (textEditor.FileName == null)
return false;
@ -123,7 +123,7 @@ namespace ICSharpCode.SharpDevelop @@ -123,7 +123,7 @@ namespace ICSharpCode.SharpDevelop
return FileUtility.IsEqualFileName(task.FileName, textEditor.FileName);
}
void AddTask(Task task)
void AddTask(SDTask task)
{
if (!isEnabled)
return;
@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop @@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop
ClearErrors();
if (!isEnabled)
return;
foreach (Task task in TaskService.Tasks) {
foreach (SDTask task in TaskService.Tasks) {
AddTask(task);
}
}

6
src/Main/Base/Project/Src/Services/Tasks/Task.cs

@ -16,7 +16,7 @@ namespace ICSharpCode.SharpDevelop @@ -16,7 +16,7 @@ namespace ICSharpCode.SharpDevelop
Comment,
}
public class Task
public class SDTask
{
[Obsolete("Default path now depends on parent pad, use ErrorListPad.DefaultContextMenuAddInTreeEntry instead.")]
public const string DefaultContextMenuAddInTreeEntry = Gui.ErrorListPad.DefaultContextMenuAddInTreeEntry;
@ -114,7 +114,7 @@ namespace ICSharpCode.SharpDevelop @@ -114,7 +114,7 @@ namespace ICSharpCode.SharpDevelop
/// <param name="column">Task column (1-based), use 0 if no column is known</param>
/// <param name="line">Task line (1-based), use 0 if no line number is known</param>
/// <param name="type">Type of the task</param>
public Task(FileName fileName, string description, int column, int line, TaskType type)
public SDTask(FileName fileName, string description, int column, int line, TaskType type)
{
if (description == null)
throw new ArgumentNullException("description");
@ -132,7 +132,7 @@ namespace ICSharpCode.SharpDevelop @@ -132,7 +132,7 @@ namespace ICSharpCode.SharpDevelop
TaskService.Remove(this);
}
public Task(BuildError error)
public SDTask(BuildError error)
{
if (error == null)
throw new ArgumentNullException("error");

6
src/Main/Base/Project/Src/Services/Tasks/TaskEventHandler.cs

@ -9,15 +9,15 @@ namespace ICSharpCode.SharpDevelop @@ -9,15 +9,15 @@ namespace ICSharpCode.SharpDevelop
public class TaskEventArgs : EventArgs
{
Task task;
SDTask task;
public Task Task {
public SDTask Task {
get {
return task;
}
}
public TaskEventArgs(Task task)
public TaskEventArgs(SDTask task)
{
this.task = task;
}

34
src/Main/Base/Project/Src/Services/Tasks/TaskService.cs

@ -13,7 +13,7 @@ namespace ICSharpCode.SharpDevelop @@ -13,7 +13,7 @@ namespace ICSharpCode.SharpDevelop
{
public class TaskService
{
static List<Task> tasks = new List<Task>();
static List<SDTask> tasks = new List<SDTask>();
static Dictionary<TaskType, int> taskCount = new Dictionary<TaskType, int>();
@ -31,9 +31,9 @@ namespace ICSharpCode.SharpDevelop @@ -31,9 +31,9 @@ namespace ICSharpCode.SharpDevelop
}
}
public static IEnumerable<Task> Tasks {
public static IEnumerable<SDTask> Tasks {
get {
foreach (Task task in tasks) {
foreach (SDTask task in tasks) {
if (task.TaskType != TaskType.Comment) {
yield return task;
}
@ -41,9 +41,9 @@ namespace ICSharpCode.SharpDevelop @@ -41,9 +41,9 @@ namespace ICSharpCode.SharpDevelop
}
}
public static IEnumerable<Task> CommentTasks {
public static IEnumerable<SDTask> CommentTasks {
get {
foreach (Task task in tasks) {
foreach (SDTask task in tasks) {
if (task.TaskType == TaskType.Comment) {
yield return task;
}
@ -110,14 +110,14 @@ namespace ICSharpCode.SharpDevelop @@ -110,14 +110,14 @@ namespace ICSharpCode.SharpDevelop
public static void ClearExceptCommentTasks()
{
List<Task> commentTasks = new List<Task>(CommentTasks);
List<SDTask> commentTasks = new List<SDTask>(CommentTasks);
Clear();
foreach (Task t in commentTasks) {
foreach (SDTask t in commentTasks) {
Add(t);
}
}
public static void Add(Task task)
public static void Add(SDTask task)
{
tasks.Add(task);
if (!taskCount.ContainsKey(task.TaskType)) {
@ -128,14 +128,14 @@ namespace ICSharpCode.SharpDevelop @@ -128,14 +128,14 @@ namespace ICSharpCode.SharpDevelop
OnAdded(new TaskEventArgs(task));
}
public static void AddRange(IEnumerable<Task> tasks)
public static void AddRange(IEnumerable<SDTask> tasks)
{
foreach (Task task in tasks) {
foreach (SDTask task in tasks) {
Add(task);
}
}
public static void Remove(Task task)
public static void Remove(SDTask task)
{
if (tasks.Contains(task)) {
tasks.Remove(task);
@ -146,17 +146,17 @@ namespace ICSharpCode.SharpDevelop @@ -146,17 +146,17 @@ namespace ICSharpCode.SharpDevelop
static void UpdateCommentTags(FileName fileName, IEnumerable<TagComment> tagComments)
{
List<Task> newTasks = new List<Task>();
List<SDTask> newTasks = new List<SDTask>();
foreach (TagComment tag in tagComments) {
newTasks.Add(new Task(fileName,
newTasks.Add(new SDTask(fileName,
tag.Key + tag.CommentString,
tag.Region.BeginColumn,
tag.Region.BeginLine,
TaskType.Comment));
}
List<Task> oldTasks = new List<Task>();
List<SDTask> oldTasks = new List<SDTask>();
foreach (Task task in CommentTasks) {
foreach (SDTask task in CommentTasks) {
if (task.FileName == fileName) {
oldTasks.Add(task);
}
@ -176,13 +176,13 @@ namespace ICSharpCode.SharpDevelop @@ -176,13 +176,13 @@ namespace ICSharpCode.SharpDevelop
}
}
foreach (Task task in newTasks) {
foreach (SDTask task in newTasks) {
if (task != null) {
Add(task);
}
}
foreach (Task task in oldTasks) {
foreach (SDTask task in oldTasks) {
if (task != null) {
Remove(task);
}

3
src/Main/Base/Project/Src/Util/ExtensionMethods.cs

@ -8,6 +8,7 @@ using System.Collections.ObjectModel; @@ -8,6 +8,7 @@ using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
@ -74,7 +75,7 @@ namespace ICSharpCode.SharpDevelop @@ -74,7 +75,7 @@ namespace ICSharpCode.SharpDevelop
/// Call this method on asynchronous tasks if you do not care about the result, but do not want
/// unhandled exceptions to go unnoticed.
/// </summary>
public static void FireAndForget(this System.Threading.Tasks.Task task)
public static void FireAndForget(this Task task)
{
task.ContinueWith(t => { if (t.Exception != null) Core.MessageService.ShowException(t.Exception); });
}

Loading…
Cancel
Save