小珊珊爱吃鱼 2015-01-02 09:29 采纳率: 0%
浏览 1689

关于C#多线程调用的问题

我的窗体是MDI多文档窗体,我在主窗体顶部天界了菜单,点击菜单弹出子窗体,但是因为我要用到数据库,所以我想在点击窗体这块使用线程,但是提示错误说线程间操作无效: 从不是创建控件"MainWindow"的线程访问它.,我看到论坛中说用到委托,可是我还不会,请教大神。
private void OpenTrainScheduleInquiryWindow() //线程用到的函数
{
if (trainScheduleInquiry == null || trainScheduleInquiry.IsDisposed)
{
trainScheduleInquiry = new TrainScheduleInquiryWindow();
trainScheduleInquiry.MdiParent = this;
trainScheduleInquiry.Show();

        }
        else
        {
            trainScheduleInquiry.WindowState = FormWindowState.Maximized;
            trainScheduleInquiry.Activate();
        }
            }
            private void Menu_TrainScheduleInquiry_Click(object sender, EventArgs e)
    {
        Thread openWindow = new Thread(OpenTrainScheduleInquiryWindow);
        openWindow.Start();//点击菜单显示子窗体的线程
    }

            请教大神这个用委托怎么写
  • 写回答

2条回答

  • threenewbee 2015-01-02 11:01
    关注

    就你的需求,根本看不出有用多线程的必要。

    因为OpenTrainScheduleInquiryWindow全部都在操作界面。非要用,就得把这些全部写在Invoke委托中,但是那样其实这些操作还是在主线程执行。

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘