Запустите фоновый асинхронный процесс из DLL - PullRequest
1 голос
/ 16 февраля 2011

У меня есть DLL, которую я хотел бы запустить в качестве фонового процесса. Поэтому в приложении C # я сначала хотел бы запустить этот процесс в выбранной DLL, а затем разрешить моему приложению продолжить выполнение процессов DLL в фоновом режиме.

Я видел несколько статей и сайтов, но не уверен, какой путь лучше выбрать.

У кого-нибудь есть идеи?

Приветствия

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

DLL не является процессом и не может быть запущен сам по себе. Однако вы можете спроектировать службу Windows и обернуть код службы вокруг вашего вызова DLL, чтобы сделать эту функциональность доступной как непрерывно выполняемый фоновый процесс.

http://msdn.microsoft.com/en-us/library/d56de412(v=vs.80).aspx

0 голосов
/ 16 февраля 2011

Предполагается, что вы выбираете .dll заранее (статическая привязка):

Добавьте .dll в качестве ссылки в ваш проект.Затем вызовите MyDll.Core.Start();, где MyDll - это пространство имен по умолчанию для вашего .dll, а Core - это класс .cs, а Start () - это определенная вами функция, которая выполняет ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), null);, а DoWork выполняет фактическую фоновую работу.

Предполагая, что вы хотите, чтобы конечный пользователь выбрал .dll из приложения (позднее связывание):

См. http://www.c -sharpcorner.com / UploadFile / samhaidar / LateBindingWithReflection09122005053810AM / LateBindingWithReflection.aspx и измените GetUserName в примере на Start, чтобы соответствовать моему примеру выше.

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