Workflow Foundation 4: Кэширование активности Безопасность потока? - PullRequest
0 голосов
/ 15 марта 2011

В моем коде есть определенные места, где я вызываю действие, используя метод WorkflowInvoker.Invoke. У меня много проблем с производительностью, потому что я создаю действие каждый раз, когда мне нужно вызвать это.

Согласно этому сообщению в блоге MSDN , я должен кэшировать действие и запустить тот же экземпляр действия, а не создавать новый.

Однако мое приложение является многопоточным. Будет ли безопасным для многих потоков использовать один и тот же экземпляр Activity? В соответствии с документацией MSDN говорится, что она не является поточно-ориентированной, но выглядит как стандартное сообщение почти для всех классов.

Я подозреваю, что он должен быть потокобезопасным, поскольку данные, используемые действием, хранятся в отдельном контексте (как переменные и аргументы), а не как обычный элемент экземпляра класса деятельности.

1 Ответ

2 голосов
/ 23 мая 2011

Я не обнаружил проблем с потоками, использующими один и тот же экземпляр Activity.Это имеет смысл, поскольку данные передаются в действие через контекст (а не через свойства объекта Activity).Кэширование активности значительно повышает производительность.

...