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();
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题