问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。
如果不会好几个线程同时操作一个控件用方法1就可以。如果存在多个线程一起操作控件使用方法2

1.在默认构造函数中添加

        public FrmBasicInfoParentNew()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;//添加这句
        }

2.使用Invoke等委托函数。

           dtDetails = bllClass.GetBySearch(_condition);
            this.Invoke(new InvokeHandler(delegate()
            {
                Utils.FillDataTableToDataGrid(this.dgvParent, dtDetails);
            }));

 

posted on 2014-07-15 15:30  清风暮雨  阅读(362)  评论(0)    收藏  举报