本文整理汇总了C#中IAction.RunCommand方法的典型用法代码示例。如果您正苦于以下问题:C# IAction.RunCommand方法的具体用法?C# IAction.RunCommand怎么用?C# IAction.RunCommand使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAction
的用法示例。
在下文中一共展示了IAction.RunCommand方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunAction
/// <summary>
/// Runs a given action in its own thread.
/// </summary>
/// <param name="deviceListString"></param>
/// <param name="action"></param>
public void RunAction(string deviceListString, IAction action)
{
var t = Task.Factory.StartNew(
() =>
{
OnActionStarted(true, action.ActionName);
var message1 = $"Starting action {action.ActionName}. Time: {DateTime.Now.ToString("HH:mm:ss")}";
_logger.LogMessage(message1);
ResultConsole.Instance.AddConsoleLine(message1);
action.RunCommand(deviceListString);
if (!action.CancellationToken.IsCancellationRequested)
{
var msg = $"Action {action.ActionName} completed.";
_logger.LogMessage(msg);
ResultConsole.Instance.AddConsoleLine(msg);
}
else
{
var msg = $"Action {action.ActionName} canceled.";
_logger.LogMessage(msg);
ResultConsole.Instance.AddConsoleLine(msg);
}
OnActionStarted(false, action.ActionName);
}, CancellationToken.None, TaskCreationOptions.None, _staTaskScheduler);
var newRunningAction = new RunningActionTask
{
RawDeviceListString = deviceListString,
RunningActionName = action.ActionName,
ThisActionsTask = t,
ThreadId = t.Id,
RunningAction = action
};
RunningActions.Add(newRunningAction);
//t.Start();
t.ContinueWith(x => ThreadEnd(newRunningAction.ThreadId));
}