#c# #.net #multithreading #windows-services
#c# #.net #многопоточность #windows-services
Вопрос:
У меня есть служба Windows (созданная с использованием C #), которая запускает фрагмент кода каждые 10 минут,
- в котором я создаю массив потоков и пытаюсь выполнить один единственный метод. и каждый поток должен выполнять свою работу отдельно.
Но, когда я устанавливаю службу и запускаю службу, через некоторое время она автоматически останавливается.
После проверки в средстве просмотра событий я нахожу в журнале сообщение: «Служба MyService неожиданно завершилась. Это было сделано 1 раз (ы).»
Код:
Thread threadarrArray = new Thread[10];
for (int i = 0; i < 10; i )
{
threadarrArray[i] = new Thread(() => Mthd_StartThreadSync());
threadarrArray[i].Start();
}
private void Mthd_StartThreadSync()
{
// some code
}
Пожалуйста, помогите.
Комментарии:
1. Вы случайно не используете фреймворк Topshelf?
2. Нет, я использую . Только Net framework
3. Покажите нам
OnStart
метод вашего сервиса4.
Timer timer = new Timer();
timer.Elapsed = new ElapsedEventHandler(OnElapsedTime);
timer.Interval = 600000;
timer.Enabled = true;
private void OnElapsedTime(object sender, ElapsedEventArgs e) { // above threading code mentioned in question }
5. Не объявляйте
timer
локально внутриOnStart
. Сохраните ссылку в поле элемента.