zoukankan      html  css  js  c++  java
  • 有返回值的Bookmark

    首先代码创建Activity:

     public sealed class WaitForResponse<TResult>:NativeActivity<TResult>
        {
            public WaitForResponse()
                :base()
            {}
    
            public string ResponseName { get; set; }
    
            protected override bool CanInduceIdle => true;
    
            protected override void Execute(NativeActivityContext context)
            {
                context.CreateBookmark(this.ResponseName, new BookmarkCallback(this.ReceivedResponse)); //这里加入BookmarkCallback, 用来设置返回值
            }
    
            void ReceivedResponse(NativeActivityContext context,Bookmark bookmark,object obj)
            {
                this.Result.Set(context, (TResult)obj);
            }
        }

    创建Workflow:

    在Branch1中创建一个变量myVar, 然后在创建的Activity中设置Result为myVar, 这个myVar会接收这个Activity创建Bookmark时返回的值. 

    测试:

    public partial class Form1 : Form
        {
            static WorkflowApplication wfapp;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                wfapp = new WorkflowApplication(new ActivityLibrary1.Activity1());
                wfapp.Idle = MyIdle;
                wfapp.Run();
    
                ThreadPool.QueueUserWorkItem(ReadName); //传入的关键, 不然workflow不会resume, Pick会运行到Branch2中去
            }
    
            void MyIdle(WorkflowApplicationIdleEventArgs e)
            {
                Console.WriteLine("Idle:" + e.InstanceId);
            }
    
            static void ReadName(object state)
            {
                string text = "abc";
    
                // Resume the Activity that set this bookmark (ReadString).
               Form1.wfapp.ResumeBookmark("P1", text);         
               
            }
        }
  • 相关阅读:
    Tempter of the Bone
    CODE[VS]1160 蛇形矩阵
    CODE[VS] 1205 单词翻转
    CODE[VS] 1204 寻找子串位置
    a little sweet~
    我多喜欢你,你会知道
    P1474 货币系统 Money Systems
    P1096 Hanoi双塔问题
    P1209 [USACO1.3]修理牛棚 Barn Repair
    下一秒
  • 原文地址:https://www.cnblogs.com/hzb2001/p/9066667.html
Copyright © 2011-2022 走看看