wf.Extensions.Add(writer);
wf.Completed = arg =>
{
if (!string.IsNullOrEmpty(writer.ToString()))
{
//display
}
};
我正在寻找一种在工作流程中而不是完成时立即获取“ Writeline”消息的方法。
下面的链接帮助我考虑编写自定义文本作者来求解上述用途:
Redirecting Console.Writeline()totextBox启用将字符附加到“作者”对象上并在工作流完成时将其打印到显示窗口(请参阅我的问题中的代码),我写了一个自定义文本作者,以打印每个“ writeline”活动的消息时(当新行)(”新行(” ”)遇到。下面的示例:
构建器:
customTextwriter:
public class WriteLineTxtWriterClass : TextWriter
{
private Action<string, Brush> WriteUserMsgToUI { get; set; }
private StringBuilder line;
private byte counter;
public WriteLineTxtWriterClass(Action<string, Brush> action)
{
WriteUserMsgToUI = action;
lineText = new StringBuilder();
}
public override void Write(char value)
{
if (value == '\r' || value == '\n')
{
counter++;
}
else
{
lineText.Append(value.ToString());
}
if (counter == 2)
{
WriteUserMsgToUI(lineText.ToString(), Brushes.Brown);
lineText.Clear();
counter = 0;
}
}
public override void Write(string text)
{
WriteUserMsgToUI(text, Brushes.Brown);
}
}
public override System.Text.Encoding Encoding
{
get { return System.Text.Encoding.Unicode; }
}