baimao1995 2015-05-29 23:08 采纳率: 0%
浏览 2049

C# 如何实现当一个指定的进程(非本身)结束后, 同时也结束掉自己的进程(本身)!

举例. 现在我同时打开了 软件A, 软件B,
软件A 是已经做好的软件或是游戏~ 不是我自己编写的.
软件B 是我自己现在要做的软件~

如何实现 在两个软件同时打开的情况下,

关闭掉软件A, 那么软件B也会自动关闭.
关闭掉软件B, 强制结束掉软件A的进程!

  • 写回答

4条回答

  • 知常曰明 2015-05-30 01:24
    关注

    所谓的B自动关闭,其实就是B执行结束。因此来说,在B中只要判断A是否存活。A若存活,则继续执行。A若不存活,则结束程序,即可。
    建议由B来打开A,这样B可以wait A的进程。当进程结束时,B自己退出即可。

    举例

    using System;
    using System.Diagnostics;
    using System.Threading;
    
    namespace Q185904
    {
        public class Worker
        {
            private Process m_p;
    
            public Worker(Process p)
            {
                this.m_p = p;
            }
    
            // This method will be called when the thread is started.
            public void DoWork()
            {
                while (!_shouldStop)
                {
                    Console.WriteLine("worker thread: working...");
                    if (Console.KeyAvailable)
                        break;
                }
                Console.WriteLine("worker thread: terminating gracefully.");
                if (!this.m_p.HasExited)
                    this.m_p.Kill();
            }
    
            public void RequestStop()
            {
                _shouldStop = true;
            }
    
            // Volatile is used as hint to the compiler that this data
            // member will be accessed by multiple threads.
            private volatile bool _shouldStop;
        }
    
        internal class Program
        {
            private static void Main(string[] args)
            {
                var p = Process.Start("C:\\Windows\\notepad.exe");
                p.WaitForInputIdle();
                var w = new Worker(p);
                var t = new Thread(w.DoWork);
                t.Start();
                if (!p.HasExited)
                    p.WaitForExit();
                w.RequestStop();
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题