在form1构造函数的顶部,我做了:
filePaths = Directory.GetFiles(@"C:\Users\bout0_000\Downloads\", "imagenew*.ico");
timer3.Start();
然后:
private void timer3_Tick(object sender, EventArgs e)
{
for (int i = 0; i < filePaths.Length; i++)
{
if (!filePaths[i].Equals(currentIcon))
{
this.Icon = new Icon(filePaths[i]);
currentIcon = filePaths[i];
break;
}
}
}
在form1的设计者中,我添加了此图标的图标,当我运行程序时,图标会快速切换并闪烁。
但是在任务栏中,图标没有快速平滑地切换它似乎在几秒钟之后就会闪烁,然后几秒钟就像悬挂在毫秒或者某些地方一样它没有像form1 Icon那样快速平滑地切换。
答案 0 :(得分:0)
嗯,System.Timers.Timer在一个独立的线程上运行,所以你的主线程以及它所做的任何工作都不会阻止+Elapsed
事件。
也许这是一个经常,一遍又一遍,从驱动器中读取文件以切换图标图形的问题?我的建议是将您的目标图像加载到项目的资源文件中,并从 而不是物理驱动器中绘制图像的交换。
如果这些文件是动态的,可以在程序初始化时将它们缓存。
Is the image loaded from url in winforms picturebox stored in cache?