多线程查询本机指定服务的状态

helloworldysn 2012-10-17 09:51:16
刚刚入门c#多线程方面的知识,想写个模块
查询本机指定服务状态

说明:多线程查询本机指定服务的状态,停止,暂停和启动 三种状态 列表方式体现 在窗体上,写成功能

类,留接口方便调用.

请问各位高手 ,这个模块用到了那个知识啊 ?具体的是那个类啊?谢谢了?急用………………
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloworldysn 2012-10-18
  • 打赏
  • 举报
回复
终于在学习中弄出来了,看来理解题意是很重要的!加油!可以看看我的代码如下:

class Class1
{
/// <summary>
/// 根据所给的服务名判断该服务是否存在
/// </summary>
/// <param name="serviceName">服务名</param>
/// <returns>是否存在</returns>
private static bool IsServiceExisted(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController sc in services)
{
if (sc.ServiceName.ToUpper() == serviceName.ToUpper())
{
return true;
}
}
return false;
}
/// <summary>
/// 根据所给的服务名称得到该服务的状态
/// </summary>
/// <param name="servicesName">服务名称列表</param>
/// <returns>服务名称以及其状态</returns>
public static List<string> GetServiceStatus(string[] servicesName)
{
ServiceController scService = new ServiceController();
List<string> list = new List<string>();

foreach (string serviceName in servicesName)
{
if (!IsServiceExisted(serviceName))
{
list.Add(serviceName + "不存在");
}
else
{
scService.ServiceName = serviceName;
scService.MachineName = ".";
scService.Refresh();

if (scService.Status == ServiceControllerStatus.Stopped || scService.Status == ServiceControllerStatus.StopPending)
list.Add(serviceName + "停止");
else if (scService.Status == ServiceControllerStatus.Running || scService.Status == ServiceControllerStatus.StartPending)
list.Add(serviceName + "启动");
else if (scService.Status == ServiceControllerStatus.Paused || scService.Status == ServiceControllerStatus.PausePending)
list.Add(serviceName + "暂停");
else list.Add(serviceName);

}
}
return list;
}
心灵彩虹 2012-10-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/lhfzd2004http://blog.csdn.net/lhfzd2004/archive/2007/08/01/1721687.aspx 第5个功能点
心灵彩虹 2012-10-17
  • 打赏
  • 举报
回复

ServiceController cs = new ServiceController();
cs.MachineName = "localhost ";
cs.ServiceName = "Messenger ";
cs.Refresh();
if (cs.Status == ServiceControllerStatus.Running)
{
//该服务在运行,做一些你想干的事情。
}
helloworldysn 2012-10-17
  • 打赏
  • 举报
回复
谢谢!还有其他的指点吗?

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧