我在程序中采用了backgroundWorker来处理数据,同时我还用到了委托,但我的主线程还会出现假死情况,请大家帮忙分析解决一下,谢谢具体程序如下: //委托
private delegate void Connect(ListView _list);
//事件
private event Connect _Connect; 程序一运行时时钟就触发开始执行
private void timer_Tick(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy == false)
backgroundWorker1.RunWorkerAsync();
} private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
ConnDT();
}
private void ConnDT()
{
if (_Connect == null)
{
_Connect += new Connect(MainForm__Connect);
}
_Connect(this.dtListView);
} /// <summary>
/// 委托连接事件
/// </summary>
/// <param name="_list"></param>
void MainForm__Connect(ListView _list)
{
if (this.InvokeRequired)
{
this.Invoke(new Connect(MainForm__Connect), new object[] { _list});
}
else
{
foreach (ListViewItem listViewItem in _list.Items)
{
.............操作
}
}
}
private delegate void Connect(ListView _list);
//事件
private event Connect _Connect; 程序一运行时时钟就触发开始执行
private void timer_Tick(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy == false)
backgroundWorker1.RunWorkerAsync();
} private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
ConnDT();
}
private void ConnDT()
{
if (_Connect == null)
{
_Connect += new Connect(MainForm__Connect);
}
_Connect(this.dtListView);
} /// <summary>
/// 委托连接事件
/// </summary>
/// <param name="_list"></param>
void MainForm__Connect(ListView _list)
{
if (this.InvokeRequired)
{
this.Invoke(new Connect(MainForm__Connect), new object[] { _list});
}
else
{
foreach (ListViewItem listViewItem in _list.Items)
{
.............操作
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货