VS 2005 Converting Class To Use Threads?
Mar 29, 2010I have a class that includes a timer :-
public class clsQueryObject
private tmrPoll as new timer
Public sub New()
[code]....
I have a class that includes a timer :-
public class clsQueryObject
private tmrPoll as new timer
Public sub New()
[code]....
I have a web app that I'm writing in asp.net, with vb code behind. The threads were working well when I had all my code in the aspx.vb code behind files, but after I moved the code into a seperate Class.vb file, the threads don't seem to be working in parallel any more. Below is a small section of my code.
It used to be that when the "botThread.Start()" method was called, the page would redirect to success.aspx, and work on the SQL query (RunBots()) thread in the background. Now when botThread.Start() is called, the page doesn't redirect to success.aspx until AFTER the RunBots() sub has been completed.
class
eg: dim classobj = xyz("CLASS_NAME") ' where classname is a valid class name
and dynamically raising a known method of that class on that newly created object or class reference.
[code].....
I have this class and I have a loop that launches multiple threads from the same class. This is all done from the main form.Now I want to update the richtextbox on the main from these classes.I have tried those begininvokes etc etc and nothing worked, no error but no output as well.Here the code for launching the threads :
Private PingObjects(100000) As Account 'Account is the class and login is the sub in it...
PingObjects(I) = New Account
Threads(I) = New Threading.Thread(AddressOf PingObjects(I).login)
[code]....
And to update the rtb, im using MainForm.log.text = "....." Nothing happens, no error.I have tried using the begin invoker method as well.
Lets say I have got a class level boolean, defined like so:
vb Private _ServerRunning As Boolean = False
and it is exposed like so:vb Public ReadOnly Property ServerIsRunning() As Boolean
Get
Return _ServerRunning
End Get
End Property
Do I need to worry about thread safety when modifying the value of that object internally within my class from different threads?
I have this application that users can make exams that contain exercises of different ... whatever. Anyway when student takes the exam he chooses it from a list and then all exercises are loaded from database. I wanted to make loading process faster by loading only first exercise data and putting others in background thread.
Actually in other parts of this application something like that is done but not by me. Basicaly an api class is built around BackgroudWorker and i can use this class to put certain functions of objects to be executed in background. The idea sounds great but in real life there are some problems with it. For example for historical reasons this application uses global functions and reader and uses global connection to Access database which means if in background something is being fectched from data base and you try to fetch from database in main thread then a „reader is already open" error occurs. To avoid this error if im doing something in main thread and want to fetch some data i have to move my function from main thread into background worker function list. And basically this in my opinion stinks cuz you end up with many delegātes, invoked checking and thre result... I was just thinking that there maybe is another way to allow (maybe with events) not put everything in background in case something is happening in bakcground but rather allow bgworker to finsih current thing, then do my thing and then resume bgWorker and not create havoc in code.
Basically i have to classes - exam and exercise that each implement many interfaces (like IExercise, IExerciseResult, IExerciseYesNo, IExerciseMultipleChoise etc.)And then i have DataBase classes like ExerciseDB, ExerciseResult etc. That have functions that preparē the sql params and call sqlHelper functions.And for example when i load up exam i go throug all exercises and call LoadData function that in turn calls ExerciseDB function selectData and then i put the returned data in Exercise object. And this type of thing of course would producē error if i at the same time would try to register the answer in database for another exercise. Ofcourse i could always check and put this in background... but as i said i'd rather want to work with database from both threads.
Whats the function for converting a string that contains a class, into a class?for example
Public Class Desk
Public GetVar=1
End Class
Dim T = "Desk"
Dim Furniture = New T
What do I have to do to T to make it into a class from a string?
I need to convert the following code, so that it exists as a created class "Payroll" that utilizes "Get" and "Set" elements. Unfortunately, I'm completely lost.
Public Class frmPayroll
Private Sub frmPayroll_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[code].....
c# - Does queuing threads impact non-thread safe objects in the same class?
View 1 RepliesIf I spawn a thread with ThreadPool.QueueUserWorkItem and that thread does not reference the object that is not thread safe, would it compromise that non-thread safe object? By not thread safe object, I mean a third party interface to a programmable logic controller that has no ability to open simultaneous connections or concurrency support.I suppose I just wanted to be sure that by queuing threads in the same class as my reference to that object, I wouldn't somehow be compromising its thread safeness in a way I didn't realize.
View 2 RepliesI have 10 threads each using the same sub to do work. This sub is calling a function to save the results. How are the threads accessing the sub? Is each one getting a fresh copy of the sub to do its thing or are they using the same piece of code and need to wait for each other to finish processing? I don't get any hits when searching for such a specific scenario. I am wondering because it is about using sockets (usually lightweight stuff) to retrieve a resource and the cpu is working at 100% all the time. Still it is very fast, 900 internet queries finish in about 3 minutes.
View 4 RepliesIn my application I have a loop that makes calls to a website to download data. I'm using a DownloadDataAsynch call with a handler.
I'm making many such calls in a loop. What I'd like to do is, if I have more than a certain number of replies pending, I should pause the loop and let the data handlers run.
How do I do that?
CODE:
My application need to communicate with my self made device through serial port. I have to change the selected index of Tabs when I press a button on my device. I have Form1, Form2, Module1 Form1 Contains the Serial Port Control. Form2 contains the Tab which needs to be changed. When I press a button on device them, the button pressed is stored in an integer form in a global variable.The Interrupt for the Serial Port directs the control to the module1 where I decide using Select Case that what index of which TabControl I have to select.Depending on that, I change the Index of the required Tab.
PROBLEM:cross thread exception is fired as soon as the control reaches the statement where I Modify the SelectIndex property from the select case at Module1.While, on my other PC, the SelectIndex property is changed, but the next tab is not shown.
BUT, if I put all this code in a button control, and try to activate from there, then it works perfectly. However, I have to navigate through the tab controls using my self made device.I searched a lot on net and came across a solution which describes that we have to use delegate function and invokeRequired methods to ensure that the procedures run on the same thread.I am not able to decide that where exactly shoud the code for delegates and all be written, in form1, or form2, or module1.Also, in the hit and try that I did, I always got the value of InvoleRequired as False.
Here is the part of Code that I wrote for Delegates
Code:
'Form 1 is BLINDHELPER_SIGNIN
'form 2 is BLINDHELPER_USER
' I have defined these at Module1
Public Delegate Sub DeleToManageTabs(ByVal tb As TabControl)
Public Sub manage_Tabs(ByVal tab As TabControl)
MsgBox(tab.Name)
[code]....
After using this code also, there is no change in working of my application.
I just had a new, last-minute idea on to take on a task, so I am running to StackExchange for quick help.
What I want to do is execute a series of methods right in a row, each in their own threads. I want the application to wait until all of these threads are completed, after which the program will resume. It also has to use managed threading (thread pool).
What quick examples could you provide to help me along the way? If it's too complex, what things should I know about so that I can Google it on my own?
I have a main thread which is designed to be a batch processor - it spawns a series of 'child' threads from a loop (which can vary in terms of the no of items) - see below
[Code]...
However, each of the 'child' threads could take anywhere from milliseconds to about a minute to process - depending on the complexity of each calculation. There may also be a large number of child threads - e.g 100s. Creating large numbers of child threads is not efficient. I therefore want some way to effectively queue each child thread (and cancel if the process is taking too long to complete). Autoevents seems like one way of doing this, but the only examples I can find seem to assume there are two different processes on seperate threads, not one process being repeated.
I am trying to convert following code into a VB equivalent so that I can use it with threading my forms and controls.
using
System;
using
System.Collections.Generic;
[code]....
I'm converting a pretty large chunk of code into a Class so that it can be re-used more easily, but am having a problem with one of the Methods. I have a method that uses the following line:'GET HANDLE OF ANY POPUP WINDOW ASSOCIATED WITH MAIN FORM [code]The "Me.Handle" part won't work, but I don't know what to replace it with so that it knows to use the handle of the main application's form that is using the Class.Do I need to get all Process that match my application's and store the Process' handle?
View 7 RepliesI am using VB.NET 2010.I have a Queue to save different data (which all come from a class of mine) as FIFO Now, I want a Function to count the saved classes in my Queue, but this isn't working
My Code look like this
Private
Function
QueueSum(ByVal
myQueue As
[code]....
TryCast seems to be wrong. - because the Intelli Sense tells me, that "SATZ" isn't declared.
I was directed to update an old VB6 dll to VB .net as we are moving away from COM objects. The dll contains one function that does a bunch of high math calculations. I opened up a new class project in VS 2005, Imported System.Math, and then basically copied the function code from the VB6 project into the new class. When compiling, I made the assemble COM-Visible and also checked the Register for COM Interop in the project properties. I then copied the dll and tlb files to Windows/system32 and tried to register using Regasm.exe.
Even though I'm using the correct version for .Net 2, I still get error RegAsm : error RA0000 : Failed to load 'C:WINDOWSsystem32eagetairmiles.dll' because it is not a valid .NET assembly. When attempting to add a reference to it in my new .Net project, I see it in the COM tab - but in the location it was developed in, and I receive the following error: Converting the type library to a .Net assembly failed. Type library mydllname was exported from a CLR assembly and cannot be re-imported as a CLR assembly.
I know that an interface can contain another interface within it.But;can a class contain another class within it?Can an interface contain another interface within it?
View 9 Replies[URL]..From the above link,i studied about the conversion.But i have a confusion:Whats the difference between the following two?CInt(myString) VB Only. This function converts the expression to an integer. A run-time exception is generated if the conversion fails.
Convert.ToInt32(myString) This function converts the expression to an integer. A run-time exception is generated if the conversion fails.
When should i use the first one and when to use the second one?
i have the following setup What i am trying to do is, when the user clicks on the 'calculate age ' button it must calculate the age and display the result based upon the selection in the combobox i.e if 'Days' are selected then it must display in days, if weeks are selected then it must display in weeks..etc
Similarly when the user clicks on the 'convert to date' button , it must subtract the given days(or weeks or months or years) from Todays date and set it to the maskedbox
I'm having an issue with my base conversion program. It seems to have a problem converting from base36 to base10 properly. After debugging all night, I've found that it's one certain function that's not working properly. The function seems to convert every last test number correctly, until I start getting into 11-digit numbers in base36. I have the max digits allowable for base36 set to 12 (so as not to exceed the base10 18-quintillion or so that an unsigned long can hold). I'm starting to think the issue is with VB and not with my code.The function as I've written it is below (DIGITS is a global const string ="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", and itr is a global integer used throughout the code for iteration):
'-----------------
Public Function FromBase10(ByVal iValue As ULong, ByVal cBase As ULong) As String
Dim remaining As ULong = iValue
[code].....
In a vb script program, I have the following code objCommand.Properties("Page Size") = 9999..I have converted most of the vb code over, but this statement gives me a "Property Item is ReadOnly" error. How can I rewrite this line to work in vb.net?
View 2 RepliesI have a form which accepts the time ( start time and end time)in a text box. What i want to do is to convert it into time and get the difference of it. I googled it and found lot of question regarding converting to date and time. but i only need "time" and dont want date.
View 7 RepliesI am attempting to use the System.Management.ManagementObjectSearcher class in VS 2005 (see below) but get a error message for both the ManagementObjectSearcher class and queryObj As ManagementObject - Type ManagementObjectfSearcher is not defined and Type ManagementObject is not defined. how do I use this class in Visual Studio 2005?
Dim searcher As New System.Management.ManagementObjectSearcher( _
"rootCIMV2", _
"SELECT * FROM Win32_ComputerSystemProduct")
[code]....
how to convert system.string to char for label text?? Here it my
[Code].....
I need to get the strings from the site and input the fields strings in the label text, so I needs to convert char of system.string but i don't know how to fix it.
I'm converting my date 01/June/2011 to FileTimeUTC so I'm getting a value of
129514186100000000
How do I convert it back to the date?
I want to create a converter that will be capable of converting a .doc file into an .exe file: How to proceed?
View 7 RepliesI've been asked by management to convert all of my applications from VB 2005 to VB 2008 (in preparation for taking them to VB 2010). I have a VS 2005 application that uses an ADO Data adapter which was defined using the GUI. I normally define my connections in code, but have been asked to get away from that in favor of ADO (and similar) data adapters.When I run the conversion wizard in VS 2008, it appears to convert this program, with some warnings and I get the 'Conversion Completed' dialog box. However, the VS 2008, will not let me close the dialog box, even after waiting for 3 hours. The only way to get out is to reboot the system.
View 6 Replies