Завершить службы циклом — c# windows-service

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Можно ли остановить службы циклом?
У меня есть список служб, занёс их в List

 List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", "Telnet",
             "mnmsrvc", "Schedule", "seclogon", "SessionEnv", "bthserv",
             "WinRM", "SCardSvr", "WbioSrvc", "SCPolicySvc","RtkBleServ"};

Как-то так попытался:

 foreach (ServiceController service in ServiceController.GetServices())
            {
                if (service.ServiceName == name[15])
                {
                    service.Stop();
                    Console.WriteLine("Остановлен");
                }
            }

Или как можно по другому?

Решил вопрос:

на Linq!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.ServiceProcess;

namespace ConsoleApplication25 {
    class Program {
        static List<string> services = new List<string> {
            "AdobeARMService", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV"
        };
        static void Main(string[] args) {
            Task.Factory.StartNew(() => Run());
            Console.ReadLine();
        }
        static void Run() {
            while (true) {
                var temp = ServiceController.GetServices().Where(s => services.Contains(s.ServiceName)).ToList();
                temp.ForEach(t => {
                    try {
                        t.Stop();
                    }
                    catch { }
                });
                Thread.Sleep(500);
            }
        }
    }
}

без Linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.ServiceProcess;

namespace ConsoleApplication25 {
    class Program {
        static List<string> services = new List<string> {
            "AdobeARMService", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV"
        };
        static void Main(string[] args) {
            new Thread(Run) { IsBackground = true }.Start();
            Console.ReadLine();
        }
        static void Run() {
            while (true) {
                List<ServiceController> temp = new List<ServiceController>();
                foreach (var s in ServiceController.GetServices()) {
                    if (services.Contains(s.ServiceName)) {
                        temp.Add(s);
                    }
                }
                foreach (var s in temp) {
                    try {
                        s.Stop();
                    }
                    catch { }
                }
                Thread.Sleep(500);
            }
        }
    }
}

Автор вопроса: GooliveR

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

Тогда можно будет вызвать из основного кода CancellationTokenSource.Cancel и службы массово завершаться.

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...
Механизм добавления новых настроек в админке wp и корректный рендеринг — php wordpress
Вопрос: Есть следующий код: $tabs = array( 'vk', 'facebook', 'instagram' ); $saved = false; if(isset($_POST) && $_POST == 'Y') { $plugin_source_tabs = $_POST; update_option('plugin_source_tabs', ...

Завершить службы циклом — c# windows-service

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Можно ли остановить службы циклом?
У меня есть список служб, занёс их в List

 List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", "Telnet",
             "mnmsrvc", "Schedule", "seclogon", "SessionEnv", "bthserv",
             "WinRM", "SCardSvr", "WbioSrvc", "SCPolicySvc","RtkBleServ"};

Как-то так попытался:

 foreach (ServiceController service in ServiceController.GetServices())
            {
                if (service.ServiceName == name[15])
                {
                    service.Stop();
                    Console.WriteLine("Остановлен");
                }
            }

Или как можно по другому?

Решил вопрос:

на Linq!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.ServiceProcess;

namespace ConsoleApplication25 {
    class Program {
        static List<string> services = new List<string> {
            "AdobeARMService", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV"
        };
        static void Main(string[] args) {
            Task.Factory.StartNew(() => Run());
            Console.ReadLine();
        }
        static void Run() {
            while (true) {
                var temp = ServiceController.GetServices().Where(s => services.Contains(s.ServiceName)).ToList();
                temp.ForEach(t => {
                    try {
                        t.Stop();
                    }
                    catch { }
                });
                Thread.Sleep(500);
            }
        }
    }
}

без Linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.ServiceProcess;

namespace ConsoleApplication25 {
    class Program {
        static List<string> services = new List<string> {
            "AdobeARMService", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV"
        };
        static void Main(string[] args) {
            new Thread(Run) { IsBackground = true }.Start();
            Console.ReadLine();
        }
        static void Run() {
            while (true) {
                List<ServiceController> temp = new List<ServiceController>();
                foreach (var s in ServiceController.GetServices()) {
                    if (services.Contains(s.ServiceName)) {
                        temp.Add(s);
                    }
                }
                foreach (var s in temp) {
                    try {
                        s.Stop();
                    }
                    catch { }
                }
                Thread.Sleep(500);
            }
        }
    }
}

Автор вопроса: GooliveR

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

Тогда можно будет вызвать из основного кода CancellationTokenSource.Cancel и службы массово завершаться.

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...
Механизм добавления новых настроек в админке wp и корректный рендеринг — php wordpress
Вопрос: Есть следующий код: $tabs = array( 'vk', 'facebook', 'instagram' ); $saved = false; if(isset($_POST) && $_POST == 'Y') { $plugin_source_tabs = $_POST; update_option('plugin_source_tabs', ...