我的项目中有一个数据网格控件,它有一个手动填充数据的组合框控件,但问题是当我尝试在添加新行时编辑该值时,我得到一个线程状态异常:
程序入口点方法是用STAThread属性设置的,我甚至把属性放在用控件调用窗体的方法上,但仍无济于事。有谁知道如何解决这个问题?感谢。
答案 0 :(得分:1)
程序入口点方法使用STAThread属性设置...
这仅适用于应用程序的主线程。您还必须小心显示创建此对话框的线程。例如:
Thread t = new Thread(new ThreadStart(ThreadProc));
t.SetApartmentState(ApartmentState.STA);
t.Start();
如果您没有直接创建线程,则需要更加彻底地更改代码。例如,如果您在Delegate.BeginInvoke()调用中显示对话框,则该线程将是应用程序的默认线程池。由于您无法控制该线程的创建,因此无法将其创建为STA线程。相反,您需要创建自己的线程,以显示对话框。