我已经使用VS 2010,C#构建应用程序。Winforms线程应用程序挂起(后台工作线程)
我在我的应用程序中使用BackgroundWorker
。
虽然我点击按钮代码从数据库中获取记录并显示到Datagrid中。 但问题是,当我从代码运行它的工作正常,但是当我运行程序.exe所以它挂起。
//Declared delegate
delegate void SetControlPropertyThreadSafeDelegate(Control control, string propertyName, object propertyValue);
//Declared method to run control Thread safe
public static void SetControlPropertyThreadSafe(Control control, string propertyName, object propertyValue)
{
if (control.InvokeRequired)
{
control.Invoke(new SetControlPropertyThreadSafeDelegate(SetControlPropertyThreadSafe), new object[] { control, propertyName, propertyValue });
}
else
{
control.GetType().InvokeMember(propertyName, BindingFlags.SetProperty, null, control, new object[] { propertyValue });
}
}
//calling method like below
SetControlPropertyThreadSafe(dataGridView1, "DataSource", dtGrid2);
我不明白我犯的错误在哪里。 为什么该程序挂?
一个调试器附加到挂起的应用程序和“破”了。这应该显示你在这里“挂起”。 – 2014-09-11 09:22:51
可是当我在调试模式下运行它,它不是挂 – Hardik 2014-09-11 09:25:31
我说:“一个调试器附加**的挂起的应用程序**”,在调试运行它。 VS可以连接到大多数应用程序或线程以进行调试。 – 2014-09-11 09:26:16