C#在Thread中显示表单无效

时间:2016-10-06 08:35:04

标签: c# multithreading backgroundworker

我想创建加载屏幕,直到打开新表单。我有三种形式。
1-登录面板
2-加载Gif表格
3-主菜单

当用户进入主菜单时,此过程至少为2秒。我必须在这个时候向用户显示加载gif。我的代码在这里;

         formLoading form_loading = new formLoading();      
         private void formLogin_Load(object sender, EventArgs e)
    {
       form_loading.Show();
       form_loading.Visible = false;
    }

    private void btnLogin_Click(object sender, EventArgs e)
    {
        form_loading.Visible = true;
        OpeninFunction();
    }

    public void OpeninFunction()
    {
        Application.DoEvents();
        fy.Show();
        fy.Visible = true;
        Thread.CurrentThread.GetApartmentState();
        this.Hide();
        Thread tr = new Thread(openMainForm);
        tr.SetApartmentState(ApartmentState.STA);
        tr.Start();  
    }

    public void openMainForm()
    {
        formMain fas = new formMain(guncelleme);  
        fas.Visible = true;
        fas.Show();
    }

此代码看起来很流畅。但是,当我使用btnLogin - >加载gif正在显示屏幕。而MainForm来来往往。我看到0.3秒。 我正在做一些与线程错误有关的事情?

谢谢你们。

如果无法做到这一点,我愿意接受你的建议。

0 个答案:

没有答案