一个需要的两种形式线程:“主要形式”加载“飞溅形式”背后

时间:2012-05-19 06:02:23

标签: vb.net vb.net-2010

两种形式  1." SplashForm"  2." MainForm"

我想加载" MainForm" AS背景" SplashForm"处理 什么时候" SplashForm"过程结束我只想展示" MainForm"应该已经加载了代码

VB代码:

Imports System
Imports System.Threading

Public Class MultiThreading
    ' Global declaration 
    Dim mf As New MainForm
    'Thread Declaration
    Dim tm As New Thread(AddressOf LoadProcess)
    Dim ts As New Thread(AddressOf Splashprocess)

    Private Sub Epaper_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Opacity = 0
        tm.Start()
        ts.Start()
    End Sub

    Sub  LoadProcess()
        mf.Show()
        mf.Hide()
    End Sub

    Sub Splashprocess()
        For i As Integer = 0 To 1000
            Me.Opacity += 0.01
        Next
        If Me.Opacity = 1 Then
            mf.Show()
            Me.Hide()
        End If
    End Sub
    End Class

1 个答案:

答案 0 :(得分:1)

为什么不从主窗体调用SplashScreen? 您的主要表单最初应该是不可见的。加载主窗体时,您可以首先将启动画面显示为独立窗体(而不是子窗体),然后继续加载主窗体。完成所有过程后,关闭启动画面并显示主窗体。

因此,您可以避免使用自制线程。

这是一个伪代码例子:

In Main_Form class                // which is invisible
{
    When Main_Form is loaded
    {
        Show SplashScreen

        Proceed on loading everything else

        Hide SplashScreen
        Show Main_Form
    }
}