.Net Or .Net Core C# 控制台捕获关闭事件的代码
Posted シ゛甜虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net Or .Net Core C# 控制台捕获关闭事件的代码相关的知识,希望对你有一定的参考价值。
/*
1:通过点击控制台的关闭按钮
2:按Ctrl+C,强制性关闭控制台
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Threading;
namespace ConsoleClose
{
public delegate bool ControlCtrlDelegate(int CtrlType);
class Program
{
[DllImport("kernel32.dll")]
private static extern bool SetConsoleCtrlHandler(ControlCtrlDelegate HandlerRoutine, bool Add);
static ControlCtrlDelegate newDelegate = new ControlCtrlDelegate(HandlerRoutine);
public static bool HandlerRoutine(int CtrlType)
{
switch (CtrlType)
{
case 0:
Console.WriteLine("0程序被Ctrl+C关闭!"); //Ctrl+C关闭
//相关代码执行
break;
case 2:
Console.WriteLine("2程序被控制台关闭按钮关闭");//按控制台关闭按钮关闭
//相关代码执行
break;
}
return false;
}
static void Main(string[] args)
{
bool bRet = SetConsoleCtrlHandler(newDelegate, true);
//这后面写程序该做的事情
while(true)
{
Console.WriteLine("程序运行中!");
Thread.Sleep(5000);
}
}
}
}
以上是关于.Net Or .Net Core C# 控制台捕获关闭事件的代码的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 LoggerFactory 和 Microsoft.Extensions.Logging 使用 C# 进行 .NET Core 控制台日志记录
如何在 C# 中将数据发送到 ASP.NET Core MVC 控制器?
C# Asp net core 如何在控制器之外调用数据库上下文
无法使用 ConfigurationManager 在 C# .NET Core 单元测试项目中读取 app.config
在 c# (.net core) 中使用 httpclient 时无法建立 SSL 连接,但在 Postman 和 Browser 中有效
菜鸟入门ASP.NET Core5:命令行配置Json文件配置Bind读取配置到C#实例在Core Mvc中使用Options