gpt4 book ai didi

c# - Windows 窗体 - 高 CPU 使用率

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:28 24 4
gpt4 key购买 nike

这里是新手,我的表单正在监视 Caps Lock 状态,但使用了大约 50% 的 CPU,我认为这与 Application.Idle += Application_Idle 和 Application.Idle -= Application_Idle 有关。一旦我删除了那些,我的表单就不会监视 Caps Lock 状态,有什么建议吗?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CapsLockChecker
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Application.Idle += Application_Idle;
}

private void Form1_Load(object sender, EventArgs e)
{

}

void Application_Idle(object sender, EventArgs e)
{
if (Control.IsKeyLocked(Keys.CapsLock))
{
label1.Text = "CapsLock is On";
pictureBox1.ImageLocation = "C:\\Users\\user\\source\\repos\\CapsLockChecker\\CapsLockChecker\\if_Circle_Green_34211.png";
}
else
{
label1.Text = "CapsLock if Off";
pictureBox1.ImageLocation = "C:\\Users\\user\\source\\repos\\CapsLockChecker\\CapsLockChecker\\if_Circle_Red_34214.png";
}
}

protected override void OnFormClosed(FormClosedEventArgs e)
{
Application.Idle -= Application_Idle;
base.OnFormClosed(e);
}
}
}

最佳答案

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

this.KeyDown += CapsLockMonitor;
this.KeyPreview = true;
}

private void CapsLockMonitor(object sender, KeyEventArgs e)
{
if (Control.IsKeyLocked(Keys.CapsLock))
{
this.label1.Text = "Caps lock enabled!";
}
else
{
this.label1.Text = "Caps lock disabled!";
}
}
}

这似乎并没有耗尽我所有的 CPU,我用我的自定义委托(delegate)订阅了 KeyDown 事件。

关于c# - Windows 窗体 - 高 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47602631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com