Используя эту статью MSDN в качестве примера для приостановки и возобновления, можно предположить, что это будет довольно просто. Вот как я "приостанавливаю" рабочий процесс ...
LastWfGuid = workflow.Id;
workflow.Unload();
Довольно просто, он должен сохраняться в хранилище экземпляров (которое я уже установил до этих двух строк), и я вижу записи в представлении Instance и InstancesTable. Когда я готов возобновить рабочий процесс, я делаю это ...
workflow = new WorkflowApplication( myActivity, myWfArgs );
workflow.InstanceStore = wfStore;
workflow.Load(LastWfGuid);
В этот момент я получаю InvalidOperationException
с сообщением об исключении ...
Workflow inputs cannot be used with Load or LoadRunnableInstance, since they are only provided to new instances.
Если я не могу загрузить рабочий процесс, который был ранее сохранен, как я могу возобновить его снова? Я попытался просто позвонить Persist()
вместо Unload()
, и снаружи это выглядит нормально, и я не получаю никаких исключений. Но рабочий процесс продолжает работать, это не то, что я ищу. Я хочу сделать паузу, а затем возобновить рабочий процесс.