关于状态机下的ManualWorkflowSchedulerService使用

从书上看到

ManualWorkflowSchedulerService一般用于ASP.NET写的应用中

先初始化

System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService scheduler = new System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService();
workflowRuntime.AddService(scheduler);

在使用中一定要注意红色部分

 WorkflowRuntime workFlowRunTime = Application[ClassPublic.WorkFlowConstValue.WorkflowRuntimeName] as WorkflowRuntime;
        ManualWorkflowSchedulerService Schedul = workFlowRunTime.GetService<ManualWorkflowSchedulerService>();
        WorkflowInstance wInstance = workFlowRunTime.CreateWorkflow(typeof(BillWF.BillWorkFlow));
        modelBillTable.BillId = wInstance.InstanceId;
        wInstance.Start();
        Schedul.RunWorkflow(wInstance.InstanceId);

只有执行了红色部分

工作流才能真正驱动

因此在执行状态机跳转的时候,也需要使用红色部分

BillWF.BillService billService = workFlowRunTime.GetService<BillWF.BillService>();
        billService.RaiseEvent("eveUserApply", wInstance.InstanceId);
        Schedul.RunWorkflow(wInstance.InstanceId);

原文地址:https://www.cnblogs.com/poplau/p/1256198.html