C#在Load事件中退出程序

C#在Load事件中是不能退出程序的,如果强行退出会报错。

解决方法是:在frmMain_Activated事件中来做退出程序的事情

Application.Exit();

 

如果用了线程,要把其设为后台线程,不然程序有其它地方关闭程序,线程是不会关的

 

Thread.IsBackground = true;

 

托管线程或者是后台线程,或者是前台线程。后台线程不会使托管执行环境处于活动状态,除此之外,后台线程与前台线程是一样的。一旦所有前台线程在托管进程(其中 .exe 文件是托管程序集)中被停止,系统将停止所有后台线程并关闭。通过设置 Thread.IsBackground 属性,可以将一个线程指定为后台线程或前台线程。例如,通过将 Thread.IsBackground 设置为 true,就可以将线程指定为后台线程。同样,通过将 IsBackground 设置为 false,就可以将线程指定为前台线程。从非托管代码进入托管执行环境的所有线程都被标记为后台线程。通过创建并启动新的 Thread 对象而生成的所有线程都是前台线程。如果要创建希望用来侦听某些活动(如套接字连接)的前台线程,则应将 Thread.IsBackground 设置为 true,以便进程可以终止。  
   
  一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线程不会阻止进程终止。一旦属于某一进程的所有前台线程都终止,公共语言运行库就会通过对任何仍然处于活动状态的后台线程调用 Abort 来结束该进程。


设置为后台线程

 

检测线程是否要结束

if(thread.IsAlive)
{
thread.abort();
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的C# Winform打卡签到小程序的实现步骤: 1. 创建一个Winform窗口,设计好界面,包括打卡按钮、显示打卡时间的标签等。 2. 在窗口Load事件,读取上次打卡时间并显示在标签上。 3. 在打卡按钮的Click事件,获取当前时间,更新标签上的时间,并将当前时间写入一个文件,以便下次读取。 4. 在程序退出时,将当前时间写入文件,以便下次启动时读取。 下面是一个简单的示例代码: ```csharp using System; using System.IO; using System.Windows.Forms; namespace PunchClock { public partial class Form1 : Form { private string filePath = "punchTime.txt"; // 打卡时间文件路径 public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // 读取上次打卡时间并显示在标签上 if (File.Exists(filePath)) { string punchTime = File.ReadAllText(filePath); lblPunchTime.Text = punchTime; } } private void btnPunch_Click(object sender, EventArgs e) { // 获取当前时间,更新标签上的时间 string punchTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); lblPunchTime.Text = punchTime; // 将当前时间写入文件,以便下次读取 File.WriteAllText(filePath, punchTime); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { // 将当前时间写入文件,以便下次启动时读取 string punchTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); File.WriteAllText(filePath, punchTime); } } } ``` 在上述代码,我们在窗口Load事件读取上次打卡时间并显示在标签上。在打卡按钮的Click事件,获取当前时间,更新标签上的时间,并将当前时间写入文件。在程序退出时,将当前时间写入文件,以便下次启动时读取。 注意,以上代码仅作为示例,实际应用还需要进行错误处理、参数验证等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值