My "form1" is just a simple page with buttons that launch different forms which do all the work, the "form1" code for the first four buttons is below. What I want is for each form to run in a separate thread.
Public Class Main
Private Sub btnDownLoadStockPrices_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownLoadStockPrices.Click
LoadStocksFromDownloadSite.Visible = True
End Sub
[Code]...
I've found plenty of code examples to have different buttons on a single form run a subroutine in a separate thread, but for some reason I can't seem to apply it to an entire form.I think it's something simple, like I need to tie each new thread as a handle to each forms "load" routine, but I just can't get it to work. I don't care about "synchronizing" threads at all, as each form is really a completely different functional program.
Ok so my main form takes around 5 seconds to load i can't make it so that my load subs are on a seperate thread because too many cross thread calls being made besides i want a splash screen anyway i want a splash screen on a seperate thread that can update status while main thread is loading this way main thread carries the load subs and invokes status label changes in the splash form which is on another thread
this is my code
Dim SPForm As SplashForm Public Sub LoaderSub(ByVal Splashed As Boolean) If Splashed = False Then
[Code]...
what happens is the splash form shows and so does the main form but they both lag for 5 seconds (as if they are both on main thread) how do i make it so that the splash form loads from the new thread? I thought the way i did it that's what should happen...
EDIT: also why did code wraps failed to show proper vb code?
1. I am closing the form which started the thread inside the thread. There are no errors , but Is it safe ?
2. The thread starts at click of a button . If same button is clicked again , the thread is aborted. Should the thread be made Background or foreground ? it is working either way.
my code :
Private Sub BtnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOk.Click m_Thread = New System.Threading.Thread(AddressOf MyFunction) m_Thread.IsBackground = True
just wondering if it is possible to have a form and then load up a control on that form but so it runs in a different thread to its parent... i tried:
[Code]...
But it still seemed to be running on the form's thread And just so you know ctlMTTest is just a control that has a button on it, that, when you click the button, a loop runs.
I'm not sure exactly how to describe this. In VB6, there was a Timer command. I could create a variable of type Timer and loop until the current value for Timer exceeded the initial plus a given amount of time. This allowed me to update form variables while the timing loop was executing. How can I do something similar in .NET?
Here is a sample of the VB6 code:
Code: Dim StartTimer As Double StartTimer = Timer Do
I am currently creating an application which monitors any errors that occur in the other applications I have developed.One thing that I want to try and do is add a sort of discussion thread into the form, so this allows for each member of IT to add comments/notes about the error that occurred.Normally I would just use a DataGridView or a ListView, but I would like to have the capability for the comments/notes to be multi-lined so that the user can see what has been written without having to scroll sideways.
I hve threaded ftp download, and that thread reports it's progressto another form (to progress bar). Now, when thread downloads, progress of thread is much slower than actual download is, so for instance: all files get downloaded, but the progressbar is at 50% or even less. Is there a way to track the progress of actual FTP download.
I am currently working on a project that has a splashscreen This splash screen is designed to be shown when the main form begins to load its requirements, and then closes once it has loaded... Currently it works like so:
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmSplash.Show() dolotsofloading() frmSplash.Close() End Sub
The coding that I have a problem with might make people think that I am creating some malware. So the project I am doing is associated with iTunes. iTunes allows people to have one library. There is another way, but it is very confusing to some people, and very unreliable. So my project is that I will allow people to have multiple iTunes libraries on one computer. So the problem is this. In order to have an option to choose your library, I gotta make sure that iTunes is not running.
So this is the script:
Private Sub CheckAndCloseiTunes() retry: 'Custom class that includes the function to safely close iTunes Dim Processes As Process() = Process.GetProcessesByName("iTunes")
[CODE]...
So when I use the Threading.Thread.Sleep(2000) code, the form becomes unresponsive.
im trying to terminate a threading.thread using thread.abort the thread runs a download connection so is usually in the middle of socket.recieve or socket.send or socket.connect when aborting i just want to terminate the thread no matter what thread.abort raises an MDA excpetion. so i ticked it off in the debug exceptions menu. now it doesnt raise an exception, but the thread simply wont terminate. my program wont close unless i press top in the debugger.i cant pause downloads because i cant terminate the thread this code wasn't working?
Dim vT As Threading.Thread For Each vT In clsDownloader.DownloadThreads If Not vT Is Nothing Then vT.Abort()
[code].....
as for the exception concerning threads being aborted from other threads being dangerous, how is it possible to send a message from a main thread to another thread to abort itself? as far as i know the only way to a abort one thread from another is to just kill it (because i dont know of ways for a thread to communicate with another).
I'm firing a thread to unzip a file. I need some way of indicating to the parent that the unzip thread has ended. I've tried raise event in the unzip thread to a sub in the parent but this runs the sub from the unzip thread. With ApartmentState set to STA, so that I could use a save dialog, this was OK until I displayed a messagebox which was hidden behind the main UI(and whatever I did I could not get it to the front).
In one application, I need use 4 simultaneous threads.When the threads finished, I need to update the text of a TextBox.So, I create 4 Textbox, and I wanna the threads change the text to FINISHED.Each thread change one distinct TB.I use this "example"
Dim Terminados As Integer = 0 Private Sub frmEnviarMensagem_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = True Timer1.Start()
[code]....
The problem is, I have an error in the red lines.The error is: INVALIDOPERATIONEXCEPTION "Cross-Thread operation not valid: Control tbPlaca1 Accessed from a thread other than the thread it was created on."I don't use cross threading. Each TB only was accessed for the correspondent thread, and for the "main program".
"Cross-thread operation not valid: Control 'Panel1' accessed from a thread other than the thread it was created on." The reason I am getting this error is because I am opening up a new form and then calling these three things:
Panel1.Show() Label1.Show() Label2.Show()
why I get this error message because it doesn't occur normally if I open Form2 after closing Form1, it only occurs when I open Form2 after closing Form4.
When my client try to connect to server I'm getting this error : Cross-thread operation not valid: Control 'l_users' accessed from a thread other than the thread it was created on.
Private Sub _socketManager_onConnectionAccept(ByVal SocketID As String) Handles _socketManager.onConnectionAccept l_Users.Items.Add(SocketID) End Sub
Would anyone be able to help me here please. I'm fairly new to VB.net and threading so im just trying to figure out what is happening.When I debug this I am getting the error thread operation not valid: Control 'ProgressBar1' accessed from a thread other than the thread it was created on.
I'm a little lost as to why the error is occuring or how to fix it. I've had to put the progress bar in a separate thread otherwise the GUI crashes
My understanding is that thread.join will suspend the execution of code on the calling thread until the spawned thread finishes or is aborted...
With that in mind, I tried this:
For i = 1 to 50 threads = New Thread(AddressOf test) threads.IsBackground = True threads.SetApartmentState(ApartmentState.STA)
[CODE]...
However, the rest of the code runs when the loop finishes, not waiting for all the spawned threads to finish. Since the rest of the code needs the threads to finish (otherwise the rest will error).
I have written an application that loads a form - frmCad as well as AutoCad. It does this via a class which detects when AutoCad quits.
Friend Class CadApp Private WithEvents AppObject As AcadApplication... Private Sub AppObject_BeginQuit(ByRef Cancel As Boolean) Handles AppObject.BeginQuit RaiseEvent Quit() End SubEnd Class
My main class loads frmCad as well as CadApp.
Public Class Cad Private WithEvents frmCad As CadForm Private WithEvents app As CadApp... Public Sub ShowForm() If frmCad Is Nothing Then frmCad = New CadForm frmCad.Visible = True End Sub... Private Sub app_Quit() Handles app.Quit frmCad.Dispose() frmCad = Nothing .... End Sub
When I debug the program, it stops at frmCad.Dispose()The program continues to execute, but all the code after it fails to work.Looking more carefully I get an error message which contains:-Cross-thread operation not valid: Control 'Autocad' accessed from a thread other than the thread it was created on.
My error:Cross-thread operation not valid: Control 'label2' accessed from a thread other than the thread it was created on. I want to be able to give my Public RunBot() sub access to edit Labels, buttons, etc without an error.
My problem is Cross-thread operation not valid: Control 'statusHO' accessed from a thread other than the thread it was created on.
System.InvalidOperationException was unhandled Message="Cross-thread operation not valid: Control 'statusHO' accessed from a thread other than the thread it was created on." Source="System.Windows.Forms" StackTrace:
[Code]...
i used it and it works fine then. but as it is mentioned its not a good practice to use it. So what should i do? is it ok if i use this as i am not able to use correct practice. Mine application is not for enterprise purpose. its just my class project, and it works fine even if i put application working in background. System works ok. I dont know how to correct this error.As i dont have that much knowlege of threads.
So please guide me how to fix this in correct way otherwise i am force to go for bad programming practice Please refer to Windows Mobile Developer Center > Smart Device Development Forums > Windows Mobile Development > Appendtext not working for all my code details
How do i load the Main form of a WPF so that a seperate thread goes and gets data from the database while the form is in an apartmentstate? (drag-able / movable) I Know this is possible with opening a new window from your main form like this :
Private Sub openOrderWindow() Dim OrderWindow As Orders = New Orders OrderWindow.ShowDialog() End Sub
[code]....
I've tried putting MyBase.ShowDialog() and .Show() and .9000+ other things The only benefit I've got out of using a seperate thread to load from the databse is i can see the screen right away (as oppose to it being a transparent box until it loads) but i cannot move it around or minimize it?is there any way to make it Movable while it loads?
In the main form the user can choose to download information from a device.Since this request takes time, when "download information" is pressed I open new form in a separate thread: Private Sub RunDownload()
I have 2 forms main_frm and copying_frm. In main_frm, there is a list view that is populated with file names. The user then clicks save and all the files in the list are copied to a folder that they choose using a folder browser dialog. When this happens, I do copying_frm.ShowDialog() to display the copying_frm. The copying_frm contains a progress bar and a cancel button. I can get the progress bar to indicate how much has been copied. But that freezes up the application. To get around this, I create a new thread (called copyingThread) that copies the files. When that thread runs though, it can't access the waitingList_lvw in main_frm. For example, in the function that the copyingThread executes, if I have this line of code: MsgBox(main_frm.waitingList_lvw.Items.Count.ToString()) the result is 0. Also, I don't get any errors and no files are copied. How do I access waitingList_lvw in main_frm from a thread called copyThread that was created in copying_frm?
I have a series of methods being called for my networking code. An event gets fired from the networking thread. Inside this event, which I've hooked into from a singleton class, I route messages to form level methods which they register on form load to handle certain messages they care about. Inside of these form message hooks I need to close the current form (which I was able to do) but also show a different one (which is giving me the trouble).