首页 新闻 会员 周边

c# 多线程安全

0
悬赏园豆:5 [已解决问题] 解决于 2011-12-31 19:45

请教大侠们,我在OrderInfo这个窗口里用的是backgroundworker控件,用多线程处理的。当我在当前的窗口调用这个子窗口时,引发了ArgumentOutOfRangeException异常,不知道这是怎么回事了。而且我也禁用了CheckForIllegalCrossThreadCalls = false;这个异常,求高手指点。

OrderInfo orderInfo = new OrderInfo(this.OrderId, this);
            orderInfo.TopLevel = false;
            orderInfo.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            orderInfo.Dock = DockStyle.Fill;
            orderInfo.Parent = this.panelEx1;
            try
            {
                orderInfo.Show();
                orderInfo.BringToFront();
            }
            catch { }

路过春秋的主页 路过春秋 | 初学一级 | 园豆:10
提问于:2011-12-31 11:43
< >
分享
最佳答案
0

界面必须在UI线程中处理,InvokeRequired这个属性你可查查

收获园豆:5
2012 | 高人七级 |园豆:21230 | 2011-12-31 12:33

这个问题后来我自己解决了,不过还是感谢你的回答。其实只要把开启后台线程的那句代码放到onload里面去就可以了,之前是放在窗口的构造涵数里面的。

路过春秋 | 园豆:10 (初学一级) | 2011-12-31 19:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册