○VB.netウエイトのかかる処理


■重い処理時の砂時計カーソル-----------------------------------------

Dim BkCur As Cursor = Cursor.Current '現在のカーソルを取っておく
Cursor.Current = Cursors.WaitCursor '砂時計カーソルに入れ替える
'重い処理
Cursor.Current = BkCur '取っておいたカーソルに戻す

■スタートアップスクリーン---------------------------------------------

StartUpという名前でフォームを作成して、起動中と書いたラベルを貼り付けてスタートアップスクリーンとします。

Form_Loadにて、

Dim StartUpForm As New StartUp
StartUpForm.Visible = True
StartUpForm.Update() 'フォームの表示を描画させます。

'重い処理

StartUpForm.Visible = False

■スレッドに値を渡して実行する------------------------------------------

@値を渡して実行するクラスを作成します。

Public Class threadClass
    Public a As Integer

    Public Sub threadFunc() 'スレッドで実行したい部分を書く
        Dim i As Integer
        For i = 0 To 10
            a = a + 1
            Debug.WriteLine(a)
            System.Threading.Thread.Sleep(1000) '重い処理と仮定する
        Next
    End Sub
End Class

A上のクラスをインスタンス化してスレッドにて回します

Dim t As New threadClass
t.a = 10 'スレッドに渡す引数のつもり
Dim thread1 As New System.Threading.Thread(AddressOf t.threadFunc)
thread1.Start()



▲トップページ > Visual BASIC と C#