我有一个小而简单的 C# 应用程序,它更新系统托盘中的图标。我用它来以图形方式显示 CPU 使用率。该应用程序运行良好。我将窗口隐藏起来,并且不在任务栏中显示它,因此它不会妨碍您。
我的问题是它会运行一段时间。经常几个小时。但随后它将神秘地退出。没有警告。没有。图标刚刚消失,程序不再运行。我已经在不同条件下在调试器中测试了程序,所以我认为不是这样。我有什么明显的遗漏吗?如果程序遇到错误并退出,如果表单被隐藏,我应该期待一条消息吗?是否有一些“保持活动”消息或我需要处理的东西?
这是代码的相关部分:
public Form1()
{
InitializeComponent();
trayIcon = new NotifyIcon();
trayIcon.Text = "CPU Utilization";
trayIcon.Icon = new Icon(SystemIcons.Application, 40, 40);
trayIcon.Visible = true;
update = new Thread(new ThreadStart(UpdateCPU));
update.Start();
}
protected override void OnLoad(EventArgs e)
{
Visible = false;
ShowInTaskbar = false;
base.OnLoad(e);
}
private void UpdateCPU()
{
Bitmap bm = new Bitmap(32, 32);
Graphics g = Graphics.FromImage(bm);
while (true)
{
g.FillRectangle(new SolidBrush(c3), 17, 17, 15, 15);
trayIcon.Icon = System.Drawing.Icon.FromHandle(bm.GetHicon());
Thread.Sleep(1000);
}
}
任何帮助将不胜感激!