草庐IT

c# - "Gracefully"杀死进程

现在我正在使用Process.Kill()来终止进程。有没有办法,而不是立即杀死它,我可以向进程发送一条消息,指示它关闭,以便它可以优雅地清理和关闭。基本上,我正在寻找与单击右上角的红色X等效的方法,我相信这确实会向应用程序发送消息以请求关闭。 最佳答案 如果进程有一个windows界面(如你所指的红色“X”),你可以试试Process.CloseMainWindow().如果失败,您可以回退到Process.Kill()。 关于c#-"Gracefully"杀死进程,我们在StackO

c# - 如何在退出时杀死线程?

父窗体上的按钮用于启动线程。如果父窗体在开发环境中关闭,线程将继续在后台运行,防止在64位Windows7平台上编辑源代码。必须通过菜单>调试>停止调试来终止线程。当父窗体关闭时以编程方式终止线程的正确方法是什么?privatevoidbuttonW_Click(objectsender,EventArgse){Threadt=newThread(Main.MyThread);t.Start();}privatestaticvoidMyThread(){...} 最佳答案 如果你想让应用程序在主线程结束时退出,你可以让新线程成为后台

c# - Application.Current.Shutdown() 没有杀死我的应用程序

我刚刚启动了一个新的C#/WPF应用程序,并且正在使用WPFContribproject中的NotifyIcon.我可以启动该程序,将“退出”菜单项添加到NotifyIcon的上下文菜单,然后将该项目链接到仅运行Application.Current.Shutdown()的方法。这会关闭主窗口和NotifyIcon,但某些东西会继续运行-从VS运行,它不会离开Debug模式。什么还在运行?或者我该如何检查?编辑我刚刚尝试添加一个调用Application.Current.Shutdown()的按钮,该按钮会正常退出。只有从NotifyIcon调用时我才会遇到问题。为什么会这样?为了澄清

c# - 如何知道谁杀死了我的线程

我有一个线程正在被驱逐..我想知道是谁在杀死我的线程以及为什么。我突然想到我的线程被操作系统杀死了,但我想确认这一点,如果可能的话,我想知道为什么它会杀死它。至于线程,我可以断言它在死亡前至少执行了40分钟,但它突然在5分钟左右死亡。publicvoidRunWorker(){Threadworker=newThread(delegate(){try{DoSomethingForALongLongTime();}catch(Exceptione){//Nothingisneverlogged:(LogException(e);throwe;}});worker.IsBackground

c# - Metro App 不能再以编程方式被杀死?

我是Win8Metro应用程序开发的新手,发现很多东西似乎与经典WPF有所不同。最让我困扰的是无法关闭该应用程序。在调试应用程序时,这非常烦人。因此,我正在寻找在我的应用程序中添加“关闭”按钮的方法。但是,旧的WPF方式:Application.Current.Shutdown()不存在了。而且我再也找不到System.Diagnostics中的Process类。有人知道怎么做吗? 最佳答案 您正在寻找App.Current.Exit() 关于c#-MetroApp不能再以编程方式被杀死

c# - 杀死应用程序打开的所有线程

我有一些非常大的c#和j#混合应用程序。有时当我关闭它时,有些线程没有关闭,它们卡在任务管理器中,无法从那里杀死它们。我很难找到所有这些线程并将它们添加到结束事件中。是否有某种方法可以暴力杀死应用程序在关闭事件中打开的所有线程?...谢谢。是否有一些工具可以告诉我关闭应用程序时打开了哪些线程以及谁打开了它们? 最佳答案 这不应该发生,如果发生了,说明您试图以错误的方式解决它。当您的应用程序退出时,.NETFramework将自动终止所有IsBackgroundproperty的线程。设置为“真”。将您的每个工作线程指定为后台线程,您

c# - 如何防止 XmlSerializer 杀死字符串中的换行符?

假设我有一个简单的类,其中只有一个成员是一个字符串。publicclassAbc{privateStringtext;publicStringText{get{returnthis.text;}set{this.text=value;}}}现在,当我使用可疑的XmlSerializer对其进行序列化然后反序列化时,任何包含换行符('\r\n'或Environment.NewLine)的文本都会转换为'\n'。如何保留换行符? 最佳答案 不是XmlSerializer而是XmlWriter正在删除您的CR。要保留它,我们必须让作者将C

杀死容器时,ubuntu 16.04上的docker错误

我无法杀死或停止任何docker容器。我已经允许非特权用户运行Docker命令。dockerrunhello-world工作正常。但我无法停止任何其他容器。我得到了关注:$dockerstop59e3b815d1dcErrorresponsefromdaemon:cannotstopcontainer:59e3b815d1dc:Cannotkillcontainer59e3b815d1dcf2d8c8bcd3dd641c3c033b83ac68ea2f0257a32a76468af7374c:unknownerrorafterkill:docker-runcdidnotterminat

杀死容器时,ubuntu 16.04上的docker错误

我无法杀死或停止任何docker容器。我已经允许非特权用户运行Docker命令。dockerrunhello-world工作正常。但我无法停止任何其他容器。我得到了关注:$dockerstop59e3b815d1dcErrorresponsefromdaemon:cannotstopcontainer:59e3b815d1dc:Cannotkillcontainer59e3b815d1dcf2d8c8bcd3dd641c3c033b83ac68ea2f0257a32a76468af7374c:unknownerrorafterkill:docker-runcdidnotterminat

Golang 无法杀死子进程的父进程

最近几天我有点挣扎于fork一个进程并从fork的进程中杀死父进程我不知道为什么,但似乎根本没有杀死parent。首先,由于优雅的关闭过程,我很难打开连接来保持进程运行,但这不是那个问题。如果我从终端向父级发送SIGTERM它工作得很好,但是当子级发送SIGTERM它不会停止,强制退出不是正常关机的选项。编辑*进程仍在进程列表中。也许那是为了parent跟踪它的child?一些fork的代码,也许我在这里做错了什么func(s*Server)Upgrade()error{tl:=s.listener.(*listener)addr:=s.listener.Addr()name:=fmt