在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级
我使用C#+ WEB SERVICE 实现数据提取的功能:
用C#做前台WINDOWS界面,在要提取数据时候向WEB SERVICE 发不同的请求
请求响应后返回一个包含相关数据的DATATABLE,我再将这个返回结果放入
DATAGRID中,但第一次运行耗费的时间较长,我就在前台中加了个TIMER事件
并新建一个线程来处理对WEB SERVICE的数据请求和响应,在该线程中主要
实现对请求的发送和对结果的接收,并将结果放入到DARAGRID中,
但在实际运行时候结果接收正常,但在放入到DATAGRID中时候出现以下异常:
System.ArgumentException: 在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级。
at System.Windows.Forms.ControlCollection.Add(Control value)
at System.Windows.Forms.DataGridTextBoxColumn.SetDataGridInColumn(DataGrid value)
at System.Windows.Forms.DataGridColumnStyle.SetDataGridTableInColumn(DataGridTableStyle value, Boolean force)
at System.Windows.Forms.GridColumnStylesCollection.AddDefaultColumn(DataGridColumnStyle column)
at System.Windows.Forms.DataGridTableStyle.SetGridColumnStylesCollection(CurrencyManager listManager)
at System.Windows.Forms.DataGrid.PairTableStylesAndGridColumns(CurrencyManager lm, DataGridTableStyle gridTable, Boolean forceColumnCreation)
at System.Windows.Forms.DataGrid.SetDataGridTable(DataGridTableStyle newTable, Boolean forceColumnCreation)
at System.Windows.Forms.DataGrid.Set_ListManager(Object newDataSource, String newDataMember, Boolean force, Boolean forceColumnCreation)
at System.Windows.Forms.DataGrid.Set_ListManager(Object newDataSource, String newDataMember, Boolean force)
at System.Windows.Forms.DataGrid.set_DataSource(Object value)
at Data_Manager.PsHosp.hosp_info() in e:\win2003 c#\data manager\pshosp.cs:line 547
希望有高手能指点一二。