源代码如下:
public Form1()
{
InitializeComponent();
linkLabel1.Text = string.Empty;
} private void TContorlMove_Tick(object sender, EventArgs e)
{
linkLabel1.Left -= 3;
} private void Form1_Load(object sender, EventArgs e)
{
string title = string.Empty;
string url = string.Empty;
string pubDate = string.Empty;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.StartupPath + @"\test.xml");
XmlNodeList rssItems = xmlDoc.SelectNodes("rss/channel/item");
StringBuilder sb = new StringBuilder();
sb.Length = 0;
foreach (XmlNode node in rssItems)
{
title = string.Empty;
url = string.Empty;
pubDate = string.Empty;
title = node.SelectSingleNode("title").InnerText;
url = node.SelectSingleNode("link").InnerText;
if (node.SelectSingleNode("pubDate") != null)
{
pubDate = node.SelectSingleNode("pubDate").InnerText;
if (pubDate.IndexOf("-") > 0)
pubDate = "(" + pubDate.Substring(pubDate.IndexOf("-") + 1, pubDate.Length - pubDate.IndexOf("-") - 1) + ")";
}
int lenTitle = (title + pubDate).Length;
int lenLinkL = sb.Length;
sb.Append(title + pubDate + " ");
LinkLabel.Link linkChild = new LinkLabel.Link(lenLinkL, lenTitle);
linkChild.Tag = url;
linkLabel1.Links.Add(linkChild);
}
linkLabel1.Text = sb.ToString();
}
public Form1()
{
InitializeComponent();
linkLabel1.Text = string.Empty;
} private void TContorlMove_Tick(object sender, EventArgs e)
{
linkLabel1.Left -= 3;
} private void Form1_Load(object sender, EventArgs e)
{
string title = string.Empty;
string url = string.Empty;
string pubDate = string.Empty;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Application.StartupPath + @"\test.xml");
XmlNodeList rssItems = xmlDoc.SelectNodes("rss/channel/item");
StringBuilder sb = new StringBuilder();
sb.Length = 0;
foreach (XmlNode node in rssItems)
{
title = string.Empty;
url = string.Empty;
pubDate = string.Empty;
title = node.SelectSingleNode("title").InnerText;
url = node.SelectSingleNode("link").InnerText;
if (node.SelectSingleNode("pubDate") != null)
{
pubDate = node.SelectSingleNode("pubDate").InnerText;
if (pubDate.IndexOf("-") > 0)
pubDate = "(" + pubDate.Substring(pubDate.IndexOf("-") + 1, pubDate.Length - pubDate.IndexOf("-") - 1) + ")";
}
int lenTitle = (title + pubDate).Length;
int lenLinkL = sb.Length;
sb.Append(title + pubDate + " ");
LinkLabel.Link linkChild = new LinkLabel.Link(lenLinkL, lenTitle);
linkChild.Tag = url;
linkLabel1.Links.Add(linkChild);
}
linkLabel1.Text = sb.ToString();
}
因为用异步只是在不同的线程,处理的次数和复杂度还是CPU做的工作我看你代码,就是散板XML,然后赋值 ,Foreach遍历还是检索赋值啊,
没有看到marquee,,,,0.1秒刷新位置的代码啊
你一秒中刷50次,也就是貌似电灯的频率吧中间控制linklable的位置 ,,
CPU应该不会这么耗的
是你Timer定时器里算法问题,,如果间隔是1毫秒的话,,
一秒钟一千次,要执行的代码太多,会是你说的那种情况