I want to know a common reason for application to get hanged when we use thread in our application.. I want some idea for y UI gets hanged.. which parts or what kind of action makes our application to get hanged?
I have a gridview in windows form. When lots of data are loaded from the database to the gridview, my application hang until all the data are loaded to the gridview. Is there any way to solve this problem? I also want to display a gif image [loading.gif] or progressbar when data is being loading to the gridview to show the user that data is being loading to the gridview. But the image and progressbar also hang.
I have also one ToolTip, I want to display that tooltip in the center of the screen. My code is as follow but it is not positioning that tooltip in the center.
Dim x As Integer = TryCastInteger(Screen.PrimaryScreen.WorkingArea.Width / 2) Dim y As Integer = TryCastInteger(Screen.PrimaryScreen.WorkingArea.Height /2) ToolTip1.Show("It will take few seconds to display the data.", KryptonPanel1, x, y)
I am getting this exception: Cross-thread operation not valid: Control 'TextBoxOutput' accessed from a thread other than the thread it was created on. in a VB 2008 Windows Forms application that I havent specifically made multi-threaded. I have create a sub called Out() like this:
Private Sub Out(ByVal inString As String) Me.TextBoxOutput.Text += (Me.TextBoxOutput.Text & inString & vbNewLine) Me.TextBoxOutput.SelectionStart = Me.TextBoxOutput.Text.Length Me.TextBoxOutput.ScrollToCaret() End Sub
and I call it from various events to log messages I am getting from my pbx, which I use a third party open source dll to access. The interesting thing to me is that if I run the deployed application (ie, not in the VS IDE) I do not get any exceptions, it's only from within the IDE.if I add the line: Control.CheckForIllegalCrossThreadCalls = False to the form's constructor, the exceptions stop, but a) this seems like a hacky way to get around the issue and b) the application seems to hang sometimes when I have it set this way.
I have a thread in an application which calls a sub routine Main(). The Main sub routine in turn call several sub routines/functions from with the same module,several different classes in the same application. Also some sub routines/functions call routines from a class library. Now say the routine/function in class library goes into a infinite loop and never returns. I would like my thread in the application to raise a event and display message to the users about the infinite loop. I am giving some sample code for the application.
My routine to check for updates is run as a separate process. Exiting the application is required to update, so a dialog asks the user, when an update is found, if they want to exit now. f they do, the code (from the update thread) calls Application.Exit().However, if the FormClosed event of any form that needs to be closed needs to access its controls, an invalid cross-thread operation is detected (which sounds pretty logical).
Suddenly some functions of Word 2007 (in Vista 32) hanged the program, such as Help or Search/Replace. When Word is reopen a message appears: microsoft visual basic. File not found. How can I solve this? I have uninstalled/reinstalled Word twice, but nothing happens.
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
I want to find the application thread and invoke something on it ... the problem is i have access to NO OBJECTS on the main thread so calling object.invoke is not an option. This is because I am making a plugin for something and have no access to the existing objects on the main thread .
I have an application in which there is a do...loop. I need the do...loop to perform some code and then stop for .1 of a second. When i try using System.Threading.Thread.sleep(), a wait cursot comes up and the application stops working. I was wondering if there was any way to get the thread to stop without stopping the application.
this is my first post and my knowledge of Visual Basic is still in its infancy (this is my first real attempt at app that is any use) however I am trying to develop an application to delete user profile and home directory folders.
I have the application working but the problem is with the application hanging (I understand this to be due to it running as a single thread and the main form gets ignored while the deletion is occuring) during the deletion process, I have tried various ways to resolve this such as starting the delete procedure as a new thread but cant get it to work without the hang.
I have this little application that is using a System.Threading.Thread.Sleep, application runs great but Windows thinks the application is not responding even though it is running.
I have a background thread that checks software updates available and few other things. If there is an update it shows a msgbox do you want to update. Since this is in another thread its not being application modal. I can still use form screen enter text to textboxes.I thougth of moving the msgbox out side the thread but then i need to do some amount changes in my code.
I am developing windows based video application, in my application I have to make multiple video files with different duration from a single video file. To achieve this I am using thread.join method(), when I run my application it works fine but sometimes it hangs and I have got to close my application using Task manager, I can't understand why my application behave like this?.
This generally happens when number of output files are more than 40. Is there any problem with thread.join() function, when number of threads are increased. I am generating a new thread for each output file because this is the limitation of the third party dll which I am using.
I'm looking for a way to pause my application while in a loop without affecting the users ability to control the application, the sleep thread method makes it seem that the app is frozen.
I am using System.IO.Ports.SerialPort in my project. This is the first time I am using this component. Let me explain the issue. My desktop is connected to a weigh scale where I am taking the readings through the COM port. In a particular function I need to give new settings (Baud, Parity, StopBits, DataBits) to the serialport. So I am closing the existing object, and opening it again with new settings.
I am getting "The I/O operation has been aborted because of either a thread exit or an application request." exception while closing the serial port. The code is follows
If frmMDI.SerialPortReader.IsOpen Then frmMDI.SerialPortReader.Close() //Exception comes here End If
I have two applications. For performing certain functions, i run a second exe, via a process, and wait till it is complete (exited) to continue with my main application. I run through many repetitive functions on different files.Everything runs fine however, when i am doing a run and it is on the x loop number, the main application seems to halt the secondary process exe. I can only assume this is what is happening as, if i close/stop (not pause) my main application in VB, the second exe continues from where it was halted until it completes.