Поделиться через


Действие NoPersistScope

Данный раздел относится к версии Windows Workflow Foundation 4.

В этом образце показано, как обрабатывать несериализуемое и высвобождаемое состояние в рабочем процессе. Важно заметить, что попыток сохранения несериализуемого состояния в рабочих процессах не происходит. Кроме того, необходимо очищать высвобождаемые объекты после их использования в рабочем процессе.

Демонстрации

Настраиваемое действие NoPersistScope и его конструктор.

Использование действия NoPersistZone

При запуске данного образца рабочего процесса пользовательское действие CreateTextWriter создает объект типа TextWriter и сохраняет его в переменной рабочего процесса. TextWriter является объектом типа IDisposable. Данный модуль записи TextWriter, настроенный на запись в файл "out.txt" в директории, из которой запущен образец, используется действием WriteLine, когда оно копирует какой-либо текст, вводимый с консоли.

Логика копирования действует в рамках действия NoPersistScope (код для которого также является частью данного образца), что препятствует сохранению рабочего процесса. Если ввести с консоли команду unload, узел попытается сохранить экземпляр рабочего процесса, но срок ожидания этой операции истекает, поскольку рабочий процесс остается в области NoPersistScope. Рабочий процесс также применяет настраиваемое действие под названием Dispose, чтобы удалить объект TextWriter, когда он больше не нужен. Действие Dispose помещается в блоке Finally действия TryCatch, в котором объявляется переменная TextWriter, чтобы гарантировать ее запуск даже при формировании исключения в ходе работы блока Try.

Чтобы завершить работу экземпляра рабочего процесса и закрыть программу, можно ввести команду exit.

Выполнение образца

  1. Откройте решение NoPersistZone.sln в Visual Studio 2010.

  2. Чтобы построить решение, нажмите клавишу F6 или выберите команду Построить решение в меню Построение.

  3. Успешно построив решение, нажмите клавишу F5 или выберите из меню Отладка пункт Начать отладку. Чтобы запустить решение без отладки, нажмите сочетание клавиш CTRL+F5 или выберите из меню Отладка пункт Запуск без отладки.

Очистка (необязательно)

  1. Для удаления хранилища экземпляров SQL запустите команду Cleanup.cmd.
Dd807512.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\NoPersistScope