Message Wait....

I'm needing to show a message wait, searched the web but only found in C # using Threads, does anyone have an example of how to do?

  •       CLASS-ID MyClass.

          WORKING-STORAGE SECTION.

            01  pleaseWaitForm            type PleaseWaitDlg.

          METHOD-ID BuildTables.

          LOCAL-STORAGE SECTION.

            01  threadStart               type System.Threading.ThreadStart.

            01  aThread                   type System.Threading.Thread.

          PROCEDURE DIVISION.

              set threadStart to new System.Threading.ThreadStart(self::MyProcess())

              set aThread to new type System.Threading.Thread(threadStart)

              set aThread::IsBackground to true

              invoke aThread::Start()

              set pleaseWaitForm to new type PleaseWaitDlg

              invoke pleaseWaitForm::ShowDialog()

              GOBACK.

          END METHOD.

          METHOD-ID MyProcess.

          PROCEDURE DIVISION.

              Do some processing

              invoke type System.Threading.Thread::Sleep(500)

              set pleaseWaitForm::ShouldCloseNow to true

              GOBACK.

          END METHOD.

          END CLASS.

      This is the form that displays "Please Wait ...".

      Select a timer control from the toolbox (All Windows Forms ... Timer) and place

      it on the form, then create an event hander (tmrCheckIfNeedToCloseDialog_Tick)

      for its Tick event.

         $set ilusing"System"

         $set ilusing"System.Collections.Generic"

         $set ilusing"System.ComponentModel"

         $set ilusing"System.Data"

         $set ilusing"System.Drawing"

         $set ilusing"System.Text"

         $set ilusing"System.Windows.Forms"

          class-id PleaseWaitDlg is partial

                    inherits type System.Windows.Forms.Form.

          working-storage section.

              01  ShouldCloseNow      type Boolean property.

          method-id NEW.

          procedure division.

              invoke self::InitializeComponent()

              goback.

          end method.

          method-id PleaseWaitDlg_Load final private.

          procedure division using by value sender as object e as type System.EventArgs.

              set ShouldCloseNow to false

              set self::Cursor to type Cursors::WaitCursor

              invoke self::tmrCheckIfNeedToCloseDialog::Start()

          end method.

          method-id tmrCheckIfNeedToCloseDialog_Tick final private.

          procedure division using by value sender as object e as type System.EventArgs.

              if ShouldCloseNow = true

                  set self::Cursor to type Cursors::Default

                  invoke self::Close()

          end method.

          end class.