本文整理汇总了C#中ITask.Run方法的典型用法代码示例。如果您正苦于以下问题:C# ITask.Run方法的具体用法?C# ITask.Run怎么用?C# ITask.Run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITask
的用法示例。
在下文中一共展示了ITask.Run方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunTask
/// <inheritdoc/>
public override void RunTask(ITask task)
{
#region Sanity checks
if (task == null) throw new ArgumentNullException(nameof(task));
#endregion
task.Run(CancellationToken, CredentialProvider, new OneGetProgress(task.Name, _request, CancellationTokenSource));
}
示例2: AddTask
public static void AddTask(ITask t)
{
foreach (ITask t2 in Tasks)
if (t.UniqueTaskName == t2.UniqueTaskName)
return;
Tasks.Add(t);
t.Run();
}
示例3: Init
public void Init()
{
// Create task
Type taskType = Type.GetType(String.Format("UtilityTool.Tasks.{0}", Task));
// Make sure type implements ITask
if (typeof(ITask).IsAssignableFrom(taskType)) {
TaskInstance = ((ITask)Activator.CreateInstance(taskType, Args));
TaskInstance.Run();
}
}
示例4: RunTask
/// <inheritdoc/>
public override void RunTask(ITask task)
{
#region Sanity checks
if (task == null) throw new ArgumentNullException(nameof(task));
#endregion
Log.Debug("Task: " + task.Name);
var progress = _wrapper.Post(form => form.GetProgressControl(task.Name));
task.Run(CancellationToken, CredentialProvider, progress);
}
示例5: Run
public bool Run(ITask task)
{
return task.Run(config);
}
示例6: manageTask
private void manageTask(ITask value)
{
StartingTask.Raise(this, new TaskmanagerEventArgs() { Task = value });
TaskEntry entry;
if (QueuedTasks.TryGetValue(value.UniqueId, out entry))
{
if (entry.State == "pending")
{
Exception exception = null;
try
{
CurrentTasks.TryAdd(value.UniqueId, value);
TaskEntry s;
QueuedTasks.TryRemove(value.UniqueId, out s);
StartedTask.Raise(this, new TaskmanagerEventArgs() { Task = value });
value.Run();
}
catch (Exception ex)
{
exception = ex;
Log.Error(ex.ToString());
TaskEntry s;
QueuedTasks.TryRemove(value.UniqueId, out s);
s.State = "error";
s.Message = ex.ToString() + "\n " + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString();
s.UniqueId = value.UniqueId;
s.Description = value.TaskDescription; ;
s.Name = value.Name;
s.TimeStamp = value.TimeStamp;
ProcessedTasks.TryAdd(s.UniqueId, s);
ITask irt;
CurrentTasks.TryRemove(s.UniqueId, out irt);
}
finally
{
var ea = new TaskmanagerEventArgs() { Task = value, Exception = exception };
EndingTask.Raise(this, ea);
TaskEntry s;
QueuedTasks.TryRemove(value.UniqueId, out s);
s.State = "completed";
s.Message = "Completed on: " + DateTime.Now.ToString();
s.UniqueId = value.UniqueId;
s.Name = value.Name;
s.Description = value.TaskDescription;
s.TimeStamp = value.TimeStamp;
ProcessedTasks.TryAdd(s.UniqueId, s);
ITask irt;
CurrentTasks.TryRemove(s.UniqueId, out irt);
if (exception == null)
value.End();
EndedTask.Raise(this, ea);
value.Dispose();
}
}
else
{
TaskEntry s;
QueuedTasks.TryRemove(value.UniqueId, out s);
ProcessedTasks.TryAdd(s.UniqueId, s);
value.Cancel();
}
}
}
示例7: RunTask
/// <summary>
/// Runs a specific task and updates the status for the task.
/// </summary>
/// <param name="task"></param>
/// <param name="result"></param>
/// <param name="isPublisher"></param>
private void RunTask(ITask task, IIntegrationResult result, bool isPublisher)
{
// Load the status details
ItemStatus status = null;
if (currentProjectItems.ContainsKey(task)) status = currentProjectItems[task];
// If there is a status, update it
var baseTask = task as TaskBase;
if (status != null)
{
if (baseTask != null)
{
status.TimeOfEstimatedCompletion = baseTask.CalculateEstimatedTime();
isPublisher = false;
}
status.TimeStarted = DateTime.Now;
status.Status = ItemBuildStatus.Running;
if ((status.Parent != null) && (status.Parent.Status == ItemBuildStatus.Pending))
{
status.Parent.TimeStarted = status.TimeStarted;
status.Parent.Status = ItemBuildStatus.Running;
}
}
try
{
// Run the actual task
// publishers do not get the overall status, as they are also ran for failed builds
// a pulisher must have the failed status if itself failed, not if a build failed
task.Run(result);
if (status != null && !isPublisher)
{
var wasSuccessful = !result.Failed;
if (baseTask != null)
{
wasSuccessful = baseTask.WasSuccessful;
}
// Only need to update the status if it is not already set
switch (status.Status)
{
case ItemBuildStatus.Pending:
case ItemBuildStatus.Running:
case ItemBuildStatus.Unknown:
if (wasSuccessful)
{
status.Status = ItemBuildStatus.CompletedSuccess;
}
else
{
status.Status = ItemBuildStatus.CompletedFailed;
}
break;
}
}
}
catch
{
// An exception was thrown, so we will assume that the task failed
if (status != null) status.Status = ItemBuildStatus.CompletedFailed;
throw;
}
finally
{
if (status != null) status.TimeCompleted = DateTime.Now;
}
}
示例8: RunTask
public bool RunTask(ITask task)
{
return task.Run();
}
示例9: RunTask
/// <summary>
/// Runs a task.
/// </summary>
/// <param name="task"></param>
/// <param name="result"></param>
/// <param name="taskDetails"></param>
private void RunTask(ITask task, IIntegrationResult result, RunningSubTaskDetails taskDetails)
{
var tsk = task as IParamatisedItem;
if (tsk!= null)
{
tsk.ApplyParameters(parameters, parameterDefinitions);
}
if (result != null)
{
result.BuildProgressInformation.OnStartupInformationUpdatedUserObject = taskDetails;
result.BuildProgressInformation.OnStartupInformationUpdated = SubTaskStartupInformationUpdated;
}
task.Run(result);
}
示例10: RunTask
/// <summary>
/// Runs a task.
/// </summary>
/// <param name="task"></param>
/// <param name="result"></param>
protected virtual void RunTask(ITask task, IIntegrationResult result)
{
var tsk = task as IParamatisedItem;
if (tsk != null)
{
tsk.ApplyParameters(parameters, parameterDefinitions);
}
task.Run(result);
}
示例11: RunTask
private bool RunTask(ITask task)
{
if (task != null && task.Active)
{
try
{
task.Run();
}
catch (Exception ex)
{
Log.Warn(string.Format("Running of Task:'{0}' in Job:'{1}' failed", task.Name, Name), ex);
if (task != m_OnErrorTask)
RunTask(m_OnErrorTask);
return !StopOnError;
}
}
return true;
}
示例12: ProcessQueued
//private void OnUpdate(Event e)
//{
// Tick();
//}
private void ProcessQueued()
{
if (_queued.Count > 0 && null == _current) // check if no current processing
{
_current = _queued[0]; // take the first one
_currentIndex++;
_queued.Remove(_current); // remove it from the queue
#if DEBUG
if (DebugMode)
Debug.Log(string.Format(@"######### STARTING job [{0}] #########", _current));
#endif
_current.Run(); // run it
}
}
示例13: RunTask
/// <summary>
/// Runs a task.
/// </summary>
/// <param name="task"></param>
/// <param name="result"></param>
protected virtual void RunTask(ITask task, IIntegrationResult result)
{
if (task is IParamatisedItem)
{
(task as IParamatisedItem).ApplyParameters(parameters, parameterDefinitions);
}
task.Run(result);
}
示例14: RunTaskAndMergeResult
private static void RunTaskAndMergeResult(ITask task, IIntegrationResult result)
{
IIntegrationResult subResult = result.Clone();
try
{
task.Run(subResult);
}
finally
{
result.Merge(subResult);
}
}
示例15: RunTask
/// <inheritdoc/>
public override void RunTask(ITask task)
{
#region Sanity checks
if (task == null) throw new ArgumentNullException(nameof(task));
#endregion
if (Verbosity <= Verbosity.Batch)
task.Run(CancellationToken, CredentialProvider);
else
{
Log.Debug("Task: " + task.Name);
Console.Error.WriteLine(task.Name + @"...");
using (var progressBar = new TaskProgressBar())
task.Run(CancellationToken, CredentialProvider, progressBar);
}
}