Как я могу запустить общий код из обоих (а), запланированных через Windows Task & (b) вручную из приложения WinForms? - PullRequest
0 голосов
/ 22 марта 2010

ВОПРОС - Как я могу запустить общий код из обоих (а), запланированных с помощью задачи Windows, и (б) вручную из приложения WinForms?

Предпосылка:

ТРЕБОВАНИЯ

  • C # .NETv3.5 проект с использованием VS2008
  • Существует существующая функция, которую я хочу запускать как (а) вручную из приложения WinForms, так и (б) по расписанию через задачу Windows.

ПОДХОДЫ

  • Так что я пытаюсь понять, какие есть варианты, чтобы заставить эту работу, например,
  • Возможно ли для задачи Windows запустить функцию в работающем / существующем приложении WinForms? (кажется, звучит не совсем уверенно)
  • Разделите код на два проекта и продублируйте для обоих консольных приложений, что диспетчер задач будет запускать, и код, который запустит приложение winforms
  • Создайте общую библиотеку и повторно используйте ее для обоих вышеупомянутых проектов в пуле выше
  • Создание службы с интерфейсом, к которому могут обращаться как диспетчер задач, так и приложение winforms

На самом деле каждый из этих подходов звучит довольно запутанно / сложно - было бы очень здорово вернуться к тому, чтобы иметь код только один раз в рамках одного проекта в VS2008, единственная причина, по которой я спрашиваю об этом, - это необходимость иметь функцию планирования было предложено использовать http://taskscheduler.codeplex.com/ в качестве средства для этого, что исключает планирование из моего проекта VS2008 ...

спасибо

1 Ответ

3 голосов
/ 22 марта 2010

Я бы определенно пошел бы за подход, чтобы поместить функциональность в общую библиотеку классов и использовать эту библиотеку в консольном приложении (которое запускается как запланированная задача) и в приложении winforms, которое может быть запущенным пользователем. Я делал это много раз, и я не нахожу это грязным или сложным вообще. Наоборот; поскольку вы отделяете функциональность от того, как она взаимодействует с «пользователем», вы можете даже получить более чистый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...