.net - Synchronous Wait Without Blocking The UI-Thread
May 24, 2011
Is there a synchronous wait function that won't tie up the UI-thread in .NET WPF? Something like:
Sub OnClick(sender As Object, e As MouseEventArgs) Handles button1.Click
Wait(2000)
'Ui still processes other events here
MessageBox.Show("Is has been 2 seconds since you clicked the button!")
End Sub
View 1 Replies
ADVERTISEMENT
Jan 19, 2009
I have been reading the async design patterns on MSDN and the general idea makes sense to me but in practice it is proving to be more difficult. I am working on a project utilizing VMWARE VIX.
HTML Code: [url]. Each function such as connecting to a host server, retrieving properties, etc. can be executed in two different ways.
Connecting to a host using a blocking Wait:
Code:
Dim m_lib As New VixLib
Dim m_hostJob As VixCOM.IJob
[CODE]...
Code:
Dim m_lib As New VixLib
Dim m_hostJob As VixCOM.IJob
dim m_callback as VixCOM.ICallback
[CODE]...
The problem with the VIX SDK is that sometimes the functions never return, hanging the application. dblock.
HTML Code:[URL] came up with a library that specifies a timeout value. When the timeout runs out the method aborts and returns regardless whether it finished or not.
The callback method is an active wait where the code continues to execute. What I want to implement is a blocking wait with a timeout. The ICallback interface has one sub OnVixEvent(IJob,Integer,IVixHandle). This method is fired at least twice, first when some progress is posted and second when it is complete. The first call to this method can be one second after registering the callback or 30 seconds, so I can not rely on this method to block the main thread. how to create some kind of async result class that would block the main thread from executing until either a timer runs out or the OnVixEvent method returns an Operation Complete signal that also implements ICallback.
View 10 Replies
Apr 30, 2012
I'm trying to wait for a Task result in .NET 4, much like you can by using the await keyword in .NET 4.5. I just can't figure out how to do it though...My code (to prove that I'm atleast trying):
Private Function GetXDocumentFromWebLocationAsync(ByVal request As WebRequest) As XDocument
Dim queryTask As Task(Of WebResponse)
queryTask = task(Of WebResponse).Factory.FromAsync(AddressOf request.BeginGetResponse, AddressOf request.EndGetResponse, Nothing, Nothing)
[code]....
As you would expect, the GetResponse calls are executed on a different thread, but the function has to wait for the result before it can return. Unfortunately this blocks my main thread until the task has completed and I don't have the slightest clue on how to make it wait without blocking. I don't want to use the Async CTP either because that's just running away from the problem.
View 1 Replies
Aug 13, 2010
I have a class that has purely static Methods and properties. I am calling an async method on the class "Load" that asks a web service for a chunk of data, which then fires an event that executes the return method, "LoadCompleted". I have no idea how long the call is going to take (the difference between calling the "Load" method, then the "LoadCompleted" getting called).
I would like to block the application from proceeding any further until the callback method has been raised (as the app will try and get stuff from this class, which isn't populated until the "LoadComplete" method sets the data).
View 3 Replies
Jun 29, 2011
I am a novice in Threads, but I want to know how to order thread execution in my scenario, and is the following :
UI Thread : Windows Form Background
Thread : Kind of print daemon
implemented with recursive methods
IO Operation : a StreamWriter that do
the job of File.AppendText()
When I execute my main app.exe, sometimes it launches the Windows Forms and the execution process in the task manager (app.exe), in some opportunities its just launches the execution process in background. How can I determine the behavior of launching UI, I have to establish a priority or somewhat else? Code: I'm using framework 2.0 and any answers could be writted in C# or Vb.Net.
View 1 Replies
Nov 18, 2011
I'm in the Progress of changing a big Application from Singlethread logic to Multithread logic. I'm currently move Dataloading Logic into a sperate thread, and work with callbacks after they are finished. I have Synclocks in place in order to ensure threadsafty. But sonetimes the Synclocks wait even if there is no other thread with the same synclock active. Is there any way to find out what witch thread they are waiting for, and why? BTW, I have FW45 installed, may that be the reason, since it'S a inplace upgrade for FW40?
View 19 Replies
May 6, 2009
In my DoWork() function I register with our sip server. Then I have to wait for a response back. However, the response I get is received in another event. However, before I am able to check the flag in the DoWork() the DoWork() has all ready finished and the response comes after.
I am trying to find a way to wait in the DoWork() until I get a response in the Diagnotic event. I have a global flag that is set in that event that I have to check in the DoWork().I was thinking of maybe blocking in the DoWork() until the other event is finished. Maybe using a join.
' Do work in background worker
'Will return less than 8 if there are no error message from the library
If (Not Me.bgwProcessLogin.CancellationPending) Then
' Register and wait for response
[code]....
View 3 Replies
Jan 15, 2012
I've been reading up on asynchronous function / web pages for ASP.NET 3.5 (we're not using v4 yet) but the ones I've seen all focus on performing a background task but then still coming back to finish up and send the response, after the task is complete.
What I want to do is simply kick off the background task (in this case a call to a web service) but then return a response to the browser immediately - ie. without waiting for the asynchronous task to complete. I don't even need to know if it succeeds or not.What is the best way to do that? I can't seem to find examples of kicking off what you might call an "orphan" background task in ASP.NET.
I thought of doing it via a javascript Ajax call on the page I show to the user, but the information passed to the web service is sensitive, so that's out of the question. But that kind of illustrates what I want to do.
[ed] Another idea: Is there an event in the ASP.NET model I can use which occurs after the response has been sent to the browser and the connection closed? ie. So more processing can occur without the user waiting for it?
View 2 Replies
Jul 17, 2009
when a button is clicked i start a seperate thead which is population a grid and does something with a webbrowser-control. But when the button is click the new thread seems not to be seperate, cause the UI is freezing until the new thread is done.
[Code]...
View 3 Replies
Jan 23, 2012
Basically after I queue all works, I want to wait until all I queued has been done. How do I do so?[code]I notice there is no way to know how many threads are still running in the threadpool.
View 2 Replies
Jun 9, 2010
I have a DataGridView control in my Windows Forms Application. I am adding rows to the grid using a background thread. I change the form's cursor to Waitcursor when the process starts and back to Default when it ends. This works well for the form, but not for the grid. When the form's cursor is changed back to default, the grid's cursor does not change, although the cursor over the rest of the form does.
I am updating the grid from a background thread? (The cursor is being changed from the UI thread directly). The background process raises an event, the handler checks the InvokeRequired property of the grid and decides if it needs to "Invoke" the method again from the main thread. So, in effect the actual UI update happens from the appropriate thread. I am not sure if this means that I am "using a background thread" or not.
View 1 Replies
Apr 9, 2011
I have a problem with releasing locks on a thread. [Code] If Me.IsStarted Then 'checks if my service is started and ready of service requests 'code here to enqueue my job and objRxResult with the service so it can populate it with the result before Pulsing back 'the service has its own thread that it dequeues jobs off of and processes them on it own time 'during this key enqueue phase we block attempts to stop the service, thus the _objIsStarted lock [Code].
View 4 Replies
Sep 20, 2010
I want to be able to run a thread and then at a certain point pause it and wait for the user to enter some text into a text box and then when they press submit i want the program to run again from where it left off.
View 10 Replies
Dec 31, 2010
Is it possible to wait/suspend execution for a certain amout of time without hanging the main UI thread?
View 7 Replies
Jul 14, 2011
I'm trying to do this[code]...
But it still runs asynchronously. I need the browser to actually wait until my code-behind is finished executing, then it can be refreshed
There's a listbox loaded with values that were just deleted from the database, they shouldn't be visible. Problem I have is the window location refreshes before the code-behind is executed, and nothing seems like it was deleted to the user.
View 2 Replies
Nov 13, 2009
I am running several long synchronous operations in my VB.NET application that can take several minutes each to complete. During these operations the form will turn white and the title bar will show "Not Responding" and some users may close the application thinking it has stopped working when in fact it is still running.I am pretty sure I need to multithread to do this, but my initial efforts have been unsuccessful. What is the easiest way to refresh my form every couple of seconds or so while these long operations are running?
View 4 Replies
May 27, 2009
While navigating to a series of sites at one site the WebBrowser control's DocumentCompleted EVENT is tripped and no other recorded Browser events occur after that. When this happens the hour glass cursor indicates the browser is waiting. From this point it take 120 to 250 seconds of wall clock time before the browser resumes. I am looking for a way to force an abnormal termination without destroying the control. I have tried "Stop", "nav to about:blank" repeatedly without success. How can I force an abnormal termination when the Cntrl is in a wait state?
Consider the following: The last known Browser event to be tripped is a Document Complete event; nothing else occurs after this. When this transpires the Cntrl is waiting.
1:50:657: ============================= ENTER WebBrowser1_DocumentCompleted EVENT ========================================
31:50:657: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^THE NEW WEBBROWSER STATEMENT
[code]....
View 7 Replies
Dec 2, 2009
I have a WinForms app and am trying to add the ability to start up multiple operations based on data entered in a datagridview. The operations must be run synchronously to monitor that they complete succesfully before inserting a row into the DB to indicate that the operation was succesfull. I also have a status event handler on the operation which will return the percentage of the running operation.
So far I am using threads to kick off the operations, however it is updating the progress of just one of the threads. When that thread is complete it is moving on the the next and will work that until completion. I would like them both or more to run simultaneously and be able to report the status of each.
I am basically looping through the rows in the grid and using the values there to instantiate a new class I created. I am then creating a thread and kicking off a sub to perform the operation from the new object. I think I may be close as I know they are all being started, but they are just running one after the other rather than all at once.
View 1 Replies
Mar 27, 2009
Is webbrowser.navigate method is synchronous or asynchronous?
example:
dim ct as integer =0
dim counter as integer =0
ct+=1
wbb.navigate(""http://www.yahoo.com")
counter+=1
will counter get increased after firing webbrowser.document completed event?
View 6 Replies
Aug 13, 2010
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".
View 3 Replies
Nov 3, 2011
This is the error message I am getting:
"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.
View 4 Replies
Jul 21, 2009
I have done a program using vb2005 to display reading from my microcontroller bs2 board but have encountered some problems. My code are as follows.
Dim Stop_Rx As Boolean
Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click
SerialPort1.Open()
[code]....
I've encounter an error which is, (Cross-thread operation not valid: Control 'txt1' accessed from a thread other than the thread it was created on.)
View 7 Replies
Jun 21, 2012
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
View 3 Replies
Feb 17, 2012
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
[Code]...
View 2 Replies
Sep 2, 2010
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).
View 4 Replies
Jun 6, 2010
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.
View 4 Replies
Feb 9, 2011
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.
[Code]...
View 8 Replies
Apr 1, 2010
I'm getting the 'System.InvalidOperationException' error on acccessing a thread from other than where it was created. My code is:
'Required by the Windows Form Designer
Public components As System.ComponentModel.IContainer ' changed from private
[code]....
View 3 Replies
Jun 6, 2009
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
View 1 Replies
Aug 4, 2009
Cross-thread operation not valid: Control 'lv1' accessed from a thread other than the thread it was created on.
Dim lvi As ListViewItem
For Each lvi In lv1.Items
[code]....
View 1 Replies