主题:BeginInvoke问题?
我做了个类似于任务管理器的程序,想让里面的进程 在后台实时刷新。主要代码如下:
private delegate void myDelegate();
private void Frm_Start_Load(object sender, EventArgs e)
{
CreatAppInfo();
CreateAppHeader();
myDelegate timeThread = new myDelegate(TimeThread);
timeThread.BeginInvoke(null, null);
//TimeThread(); //之前的方法;
}
private void TimeThread()
{
timer1.Interval = 150; //time1是我定义的一个Timer类的对象
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
CreatAppInfo();
CreateAppHeader();
listView_App.Refresh();
CreatProInfor();
CreatProHead();
listView_Pro.Refresh();
}
但是运行的时候并没有起到时时刷新的作用,而非要等到鼠标在listView_App和listView_Pro之间相互切换时候才能刷新。而之前我没有用委托,直接LOAD的时候调用TimeThread();方法是可以的,只是UI不友好,经常假死。请问是什么原因?
private delegate void myDelegate();
private void Frm_Start_Load(object sender, EventArgs e)
{
CreatAppInfo();
CreateAppHeader();
myDelegate timeThread = new myDelegate(TimeThread);
timeThread.BeginInvoke(null, null);
//TimeThread(); //之前的方法;
}
private void TimeThread()
{
timer1.Interval = 150; //time1是我定义的一个Timer类的对象
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
CreatAppInfo();
CreateAppHeader();
listView_App.Refresh();
CreatProInfor();
CreatProHead();
listView_Pro.Refresh();
}
但是运行的时候并没有起到时时刷新的作用,而非要等到鼠标在listView_App和listView_Pro之间相互切换时候才能刷新。而之前我没有用委托,直接LOAD的时候调用TimeThread();方法是可以的,只是UI不友好,经常假死。请问是什么原因?