在我的应用程序中,我需要通知用户有关待处理的应用程序。
所以在mdiParent
我设置了一个BackgroundWorker
不断查询数据库以获取任何挂起的应用程序,如果它找到任何显示它在工具提示上MdiParent
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync(2000);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
fillnotification();
}
public void fillnotification()
{
int pending = 0;
if( Program.USERPK != 0)
{
DataTable dt = nftrans.getnotification();
pending = dt.Rows.Count;
String message = "You Have " + pending + " Applications Pending For Approval";
// toolTip1.SetToolTip(lblStatus , message);
toolTip1.Show(message , this, lblStatus.Location);
}
}
但是当我运行解决方案时,我遇到了一个异常:
跨线程操作无效:控件“MainForm”从创建它的线程以外的线程访问。
我理解这是由于两个不同的线程,但无法解决这个问题。任何人都可以提出解决方案吗?我尝试了我在相关问题中阅读的想法但找不到正确的解决方案