我编写了一个简短的 C# 脚本,以便在我的计算机启动时执行。它的功能是监控 iTunes 并显示一条有趣的消息作为我的 Skype 状态,说明我正在收听的艺术家。
它创建一个 iTunesApp 对象并添加一个侦听器,用于检测轨道何时发生变化。问题是我需要使用while(true)
循环来让我的应用程序在后台打开,否则它只会运行和关闭。我认为这没问题,直到我查看任务管理器并意识到这个小程序正在使用 15%-20% 的 CPU!
有更好的方法吗?
这是代码的核心,以获得一个想法:
static void Main(string[] args)
{
iTunesApp = new iTunesAppClass();
iTunesApp.OnPlayerPlayEvent += ITunesApp_OnPlayerPlayEvent;
while (true)
{ }
}
private static void ITunesApp_OnPlayerPlayEvent(object iTrack)
{
var currentArtist = iTunesApp.CurrentTrack.Artist;
if (currentArtist != LastArtist)
{
LastArtist = currentArtist;
var message = GetMessage(currentArtist);
UpdateSkypeStatus(message);
UpdateLog(message);
}
}