C# 退出过程是那个函数

来源:百度知道 编辑:UC知道 时间:2024/06/18 22:57:51
我定义了一个过程private void ??(){}
想跳出这个过程中该怎么写

Process类的CloseMainWindow, Kill, Close
Process.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用户点击窗体的关闭按钮或者按Alt + F4。它的本质就是向主窗体发送WM_CLOSE消息(Process.MainWindowsHandle可以返回主窗体的句柄)。这个可以在.NET Framework源代码中看出来:
publicbool CloseMainWindow()
{
IntPtr mainWindowHandle =this.MainWindowHandle;
//句柄是否为0
if (mainWindowHandle ==IntPtr.Zero)
{
returnfalse;
}
//GetWindowLong是否成功执行
if ((NativeMethods.GetWindowLong(newHandleRef(this, mainWindowHandle), -16) &0x8000000) !=0)
{
returnfalse;
}
//0x10 是 WM_CLOSE消息
//向主窗体发送WM_CLOSE,注意是PostMessage而不是SendMessage
NativeMethods.PostMessage(newHandleRef(this, mainWindowHandle), 0x10, IntPtr.Zero, IntPtr.Zero);
returntrue;
}

CloseMainWindow方法使用PostMessage(不是SendMessage,所以消息会加在消息队列的最后)方法向主窗体发送一个WM_CLOSE消息,这样等主窗体处理完所有消息后,等遇到WM_CLOSE便开始执行退出动作。
比如记事本接到了WM_CLOSE消息但是有未保存的文件记事本会弹出对话框提示用户保存还是不保存还是取消退出操作。Windows Forms和WPF的窗体都会有类似操作,通过窗体的Closing事件来在WM_CLOSE