监控线程的问题

awnuytnh 2009-12-18 11:42:17
之前看了几篇贴子问如何写监控线程的程序,我也非常想知道,看了下总结了几点,首先如何获取想要的线程的状态,比如已知一个应用程序为A.exe,如何取得它的状态,比如是在正运行还是已经掉了;第二,如何判断是否掉了,比如处理返回值;第三,当A.exe这个程序掉了被监控到了,那怎么样让其自动启动?用 System.Diagnostics.Process.Start(A.exe);么?
希望有明白的大虾帮解决一下,很想知道如何写一个监控程序,同时如果有代码有注释那更好了,麻烦了..
...全文
91 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
it_gz_xi 2009-12-18
  • 打赏
  • 举报
回复
System.Diagnostics.Process.Start(绝对路径);
一般一个程序运行了就会在进程信息里面吧,不再的话就关掉咯
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sxmonsy 的回复:]
1、      System.Threading.Thread th = new System.Threading.Thread(Show);
        th.Start();
        //IsAlive返回一个值表示当前线程状态。
        if (th.IsAlive)
        {
        }
2、访问该线程如果超时就说明掉了。
3、System.Diagnostics.Process.Start(绝对路径);

[/Quote]
我能问一下么,System.Threading.Thread th = new System.Threading.Thread(Show);这句里的(show)的这个体show是什么,是进程的名字么?还有你这句话的意思是什么?
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bwangel 的回复:]
你说的不是线程是进程.
[/Quote]
你说的对是我打算了,不好意思..
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yjl49 的回复:]
我们现在的做法是让程序在固定的时间内签到(向数据库插入一条记录)。别的监控程序再扫描,有问题就重启相应的程序。
[/Quote]
不好意思能说说具体的做法的,我现在想实现的就是做一个程序A,通过这个程序A判断另一个程序B是否在运行,如果在程序B运行则程序A无反应,如果监控到程序B的线程停止,则程序A触发程序B使程序B重新启动,应该怎么样做,能详细说明一下么?
bwangel 2009-12-18
  • 打赏
  • 举报
回复
你说的不是线程是进程.
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
首先谢谢你帮我回答这问题,能帮我具体说说如何实现么,比如我上面例出的代码可以实现么等等..
yjl49 2009-12-18
  • 打赏
  • 举报
回复
我们现在的做法是让程序在固定的时间内签到(向数据库插入一条记录)。别的监控程序再扫描,有问题就重启相应的程序。
sxmonsy 2009-12-18
  • 打赏
  • 举报
回复
1、 System.Threading.Thread th = new System.Threading.Thread(Show);
th.Start();
//IsAlive返回一个值表示当前线程状态。
if (th.IsAlive)
{
}
2、访问该线程如果超时就说明掉了。
3、System.Diagnostics.Process.Start(绝对路径);
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
public static bool IsAppStart(String AppName,String AppPath)
{


System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName(AppName);
foreach (System.Diagnostics.Process myProcess in myProcesses)
{

string ProcessFile = myProcess.Modules[0].FileName;
FileInfo Myfile = new FileInfo(ProcessFile);
if (Myfile.DirectoryName.ToLower() == AppPath.ToLower())
{
return true;
}
}


return false;
}


谁能帮我把这段代码加上注释么,谢谢了,我还想知道这段代码实现的是什么?
awnuytnh 2009-12-18
  • 打赏
  • 举报
回复
那前面的几个问题能回答一下么

110,534

社区成员

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

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

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