Geo Paul
Geo Paul

Reputation: 1817

Threading in VB.net

I have a very basic doubt in vb.net threading. I am having a function MyFunc1() which actually launches a form and asks for input from the user and returns a string. The return must be done only when user clicks a button called 'return' in the Form.

So I framed the function like this.

Public done as Boolean = true
Public str as String

Function MyFunc1() As String
  Start Thread1  //launch UI as seperate thread
  While done
  End While    //Infinite loop to hold the parent loop till done is made as false
  return str
End Function

Function Thread1
  //code to launch UI
End Function

Function onClickReturn  //Function triggered when 'return' is pressed
  str = EditText.text
  done = false
End Function

The problem right now is Thread1 launches the UI but once the UI is launched Thread1 dies and so does the UI Panel.

Any ways to fix this?

Upvotes: 0

Views: 274

Answers (2)

Ceres
Ceres

Reputation: 3648

If you have a .Net thread object, you can block by calling Thread.Join.

Upvotes: 0

Kratz
Kratz

Reputation: 4330

I think what you are trying to do doesn't event need threads. Since your blocking the original thread anyways, there is really no need to create a second thread. Typically you just call

MyForm.ShowDialog()

That shows a modal dialog and will block the calling code at that line, allowing the UI to be displayed and used until the user dismisses it.

Upvotes: 3

Related Questions