我正在.NETCore控制台应用程序中创建注册步骤。在该步骤中,我正在使用Console.ReadLine
从控制台应用程序中读取输入。但是它突然终止了。
public class SendRequestStep : StepBody
{
public override ExecutionResult Run(IStepExecutionContext context)
{
Console.Write("IsChanged?");
string result = Console.ReadLine();
switch (result)
{
case "Yes":
{
}
case "No":
{
}
}
return ExecutionResult.Next();
}
}
使用工作流核心时有人遇到以上问题吗?
预先感谢
答案 0 :(得分:0)
那将不起作用,因为工作流在后台线程上运行。也许您可以创建一个等待外部事件(ExecutionResult.WaitForEvent(eventName, eventKey, effectiveDate)
)的步骤,然后可以通过Console.Readline()
发送您收集的所有内容(使用Host.PublishEvent(eventName, eventKey, data)
或其他任何方式)。
在您的步骤上执行以下操作:
public override ExecutionResult OnRun(IStepExecutionContext context)
{
if (!context.ExecutionPointer.EventPublished)
{
// do more stuff here...
return ExecutionResult.WaitForEvent(eventName, eventKey, effectiveDate);
}
// Get the sent data from `context.ExecutionPointer.EventData`
Result = context.ExecutionPointer.EventData;
return ExecutionResult.Next();
}