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

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

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

Ура

1
Funky 16 Фев 2011 в 18:46

2 ответа

Лучший ответ

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

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

1
S M Kamran 16 Фев 2011 в 18:48
Да, вот что я имею в виду, извини, что опаздываю: Sd
 – 
Funky
16 Фев 2011 в 18:59

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

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

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

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

0
servermanfail 16 Фев 2011 в 19:05