餘米添加自定義的控制,我FlowLayoutPanel的,它的某種外匯的數據,每秒刷新一次,自定義控件屬性 - C#,窗體
等各個計時器滴答,即時通訊增加一個控制,改變控制按鈕上的文字,隨後將其加入爲FlowLayout面板,
IM在每100毫秒計時器滴答做,
它佔用過多的CPU,
這裏是我的自定義控制。
public partial class UserControl1 : UserControl
{
public void displaydata(string name, string back3price, string back3, string back2price, string back2, string back1price, string back1, string lay3price, string lay3 , string lay2price, string lay2, string lay1price, string lay1)
{
lblrunnerName.Text = name.ToString();
btnback3.Text = back3.ToString() + "\n" + back3price.ToString();
btnback2.Text = back2.ToString() + "\n" + back2price.ToString();
btnback1.Text = back1.ToString() + "\n" + back1price.ToString();
btnlay1.Text = lay1.ToString() + "\n" + lay1price.ToString();
btnlay2.Text = lay2.ToString() + "\n" + lay2price.ToString();
btnlay3.Text = lay3.ToString() + "\n" + lay3price.ToString();
}
這裏是我如何添加控制;
private void timer1_Tick(object sender, EventArgs e)
{
localhost.marketData[] md;
md = ser.getM1();
flowLayoutPanel1.Controls.Clear();
foreach (localhost.marketData item in md)
{
UserControl1 ur = new UserControl1();
ur.Name = item.runnerName + item.runnerID;
ur.displaydata(item.runnerName, item.back3price, item.back3, item.back2price, item.back2, item.back1price, item.back1, item.lay3price, item.lay3, item.lay2price, item.lay2, item.lay1price, item.lay1);
flowLayoutPanel1.SuspendLayout();
flowLayoutPanel1.Controls.Add(ur);
flowLayoutPanel1.ResumeLayout();
}
}
現在它在每次發送時都發送10次,佔我Core2Duo CPU的60%。 我想刷新快,我需要一些優化建議
是否有任何其他的方式,我可以只添加控件第一次,然後更改自定義的文本控件上的每個刷新或計時器滴答上運行按鈕
即時通訊使用c#.net
請不要在SO上覆制/粘貼代碼而不要格式化。這太可怕了。請在SO上張貼之前檢查拼寫。謝謝 – abatishchev 2010-05-30 14:59:27