Multithreading - Passing Variables In Shared Subs?
Apr 23, 2012Public Shared _formRef As frmMain
Public Shared f As frmMain
Class Server[code].....
but once firing off the code i get the error you see in my image attached.
Public Shared _formRef As frmMain
Public Shared f As frmMain
Class Server[code].....
but once firing off the code i get the error you see in my image attached.
Question 1: What is the difference between "Background Worker" and "Worker Pool" as indicated within the MSDN samples provided.
Question 2: I noticed while using, AddressOf _Function_, variables cannot be passed; what would be an efficient solution to this?
Question 3: While using multithreading is it required to invoke before setting variables, or only form properties?
Question 4: While using System.Net.Sockets is it safe/efficient to use Application.DoEvents while waiting for new data; or would be using a Do While loop be fine without DoEvents since the action would be multithreaded? Note: there can be up to 2000-3000 sockets in use at a time.
I'm having an issue where I need to pass the value in a variable from one sub to anotherHere is the scenario. I have two forms; Main_Form and frmClient. I take a value from frmClient and pass it into a sub called Form_Activate located in Main_Form. I then need to take the value from Form_Activate and use it in a sub called when the user selects a menu item in the toolstrip.Starting point is frmClient and the code there is this:
Private Sub Button1_Click(ByVal sender as System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Client As Integer
[code].....
I have an application that queries DHCP and pulls scope/subnet information. There are roughly 8k scopes on our network to query so reporting this data takes a little bit of time. I currently have this running on it's own thread and reporting to a progress bar so the applications doesn't seem inactive.
The DHCP api functions can report a total, a max read and a resume argument. This means that I can, in theory start 4 threads and have each thread read through 2k subnets, so it will only take 1/4 of the time to read all this data. Would I need to create four separate background worker handlers, do_works, runworkcomplete, report progress etc.?
I was wondering how to implement a vb script file with functions and subs that can be used in all code pages of a project. Similar to the old VB 6 bas files.
View 2 RepliesI am porting an app from VB6 and I run into problems with references to functions and subs. Basically, let's say I have 2 classes added to the project, like this.
Public Class OOOOO
Public Shared Sub BBBBBBB(ByVal FileName As String)
...
Call CCCCCC()
Call DDDDDD()
etc.
...
End Sub
[Code] .....
I had to make the BBBB() shared to be able to call it from another function AAAAAA() from another class PPPPP. However, I get error on the references in the BBBBB(), that CCCC() and DDDD() have to be made also shared (so instead of 1 error I got number of errors).
When I tried to make them shared as well, I got tens and tens of errors due to other references of both variables and functions.
I have a page where the page loads with the code as shown below. Pretty much every other sub on the page uses the variables gFilename, gPicType and gPicPath. In every other routine I have to go through the process of recreating gPicPath (as per the if/then block in the code). How do I create these variables ONCE, and then store them so that all the other subs can access them?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' check to see if this is the first time the page is loaded.
If IsPostBack = False Then
[code]....
i have an sql database in my application and everything is working fine apart from one aspect.My random row picker code is located in one button on_click event. Is there a way of passing it over to other subs/on_click events?
[Code]...
I have a number of unrelated subs and functions that do various things on my server (e.g. Lighting control, data caching, server maintenance, etc). They are all in various classes which I have coalesced into a single solution.My goal is to create a single, simple interface which each of these disparate classes can be integrated and called from a command line interface. Instead of hard-coding a longish case statement which parses arguments and passes them to the various subs, I wanted to make a generic class which can be instantiated with a minimum of information and put into a data structure. Ideally, adding a new function would involve:
1.) Providing the function pointer (Delegate). The delegates will have various signatures. This is the crux of the question.
2.) Providing ancillary info such as the command-line callable name, number of arguments, argument types, etc.
I have a 100% working class called "node" which is basically a hierarchical tree of node instances. I can use this to simply organize function calls in related branches. All is working quite well.NodeFunctionDelegate(ByVal args As String) As String.The node takes the arguments passed to it by the command line and sends it as the "args" string as comma-separated. The delegate function then needs to know how to split up these comma-separated values, type them, tryparse them and etc. It then must return some string.It works, but it involves writing a middle-man function stub which can receive the argument string from the node class, do the parsing and type checking, and then call the destination function.My goal is to eliminate this trivial middle-man function. The problem is, I can't figure out how to create a variable-signature delegate for the node class.
At the head of a module, I wish to declare some global variables for use in various subs/functions.
What is the difference between.Dim x as string and Private x as string / Public x as string, and when would I use one over the other?
I have code, shown below, that works all except for 1 thing: The variables being passed byRef get passed, but once modified in the else section of the "if me.invokerequired" code of RecordData, the variables are never updated in the calling function. To reiterate, the calling function does not receive the updated data that is in the variables custid and amt.When debugging, I see the data change in the else section of "if me.invokerequired", but once it returns from the callback the data is missing.[code]
View 15 RepliesI am trying to add shared members in derived classes and use that values in base classes...
I have base
class DBLayer
public shared function GetDetail(byval UIN as integer)
dim StrSql = string.format("select * from {0} where uin = {1}", tablename, uin)
end function
end class
[Code]..
currently there is error using the tablename variable of derived class in base class but i want to use it i dun know other techniques if other solutions are better then u can post it or u can say how can i make it work? confused...
I am trying to get a handle on SyncLock and multithreading, but I am having some trouble wrapping my head around exactly how it should be implemented. I have a Public Class Utilities with a many Shared Functions. I want to make sure that each function can only be executed when there are no other concurrent calls to the same function. So If I have 2 functions, A and B in a Public Class Utilities, what is the syntax so that a function "locks" while it is being executed, preventing any subsequent calls until the "locking" thread has completed?
CODE
Public Class Utilities
Public Shared Function A (ByRef i As Integer) As Integer
[CODE].............................
I know I need to wrap the statements of execution in a SyncLock block, but I am unsure of the scope of the parameter used with SyncLock...is it private to the function, class, etc? Can the same object be used to lock both functions if they are independent?
I've been looking at threading to make my webapplications more responsive. I've found out how to thread a sub that takes no variables and doesn't return anything, but I can't find out how to achieve this for a function that takes variables and returns something. here is an example
[Code]...
I have a problem with inherited classes. Have a look at the following VB.NET 2.0 / VS 2005 code:
MustInherit Class templateclass
Public Shared x As String
End Class
Class child1
[code]....
The templateclass has a shared variable x which is of course inherited by the child classes. But I wonder that all child classes share only one x! Until now I thought that shared variables are only shared among the instances of a class, not among all childs. This is very annoying because I have a base class which I need in two slightly different versions and they should not "share the shared" variables. And because the classes have a lot of shared variables, shadowing each in the childs would be very..
I'm trying to split some prior crafted code into a DLL. It's a simple logger system.There are a few things that need to be shared with the main form in the project, so I set them up as a shared variable, but I don't use shared stuff often, and I worry it will cause variable conflicts regarding scope. I figured I would make a post here about it and see if someone can explain what I don't fully understand.Since this is a logger it will be used a couple of places. Other DLLs that need logging may reference it through a instanced object and project reference. My main form will also have an instanced object and a reference to the logger libary.Since one of my properties is a connection string and it's shared, does this mean that a instance of my logger class inside a DLL will have the same shared values as a instance on my main UI form? Or will the fact that the instance is inside of a DLL provide the scope boundary I need?
View 1 RepliesI have been thrown in at the deep end with an existing VB.NET project at work. I have never used VB.NET before so I am struggling a little. Does anyone know how to solve the following.I need to pass an instance to client side and then pass it to a shared method in order to access instance methods from when the shared method.The starting point is a fileupload control within the HTML of my Contacts.aspx file:
<asp:FileUpload ID="DocUpload1" runat="server" onchange="CallMe();" />
The onchange event calls a javascript method, see below, this uses AJAX PageMethods to called a Shared method in my code behind This is the script code which is in my Contact.aspx file
[Code]...
If anyone knows the solution please could they update the code as I probably won't be able to understand if you just give a description. I just hope I am along the right tracks.
I was reviewing the MSDN documentation on VB.Net's little-used Static keyword for local variables. My question is not about how Static works (I personally plan to avoid using it as it seems like it could cause grief to future programmers who don't notice the side-effects.) My question is about this statement in the docs:[code]So can anyone interpret the above statement for me in a way that makes sense? Or is this a bug in the documentation? It's been there since the VS 2005 version of the docs and is still present in the Visual Studio 11 version.
View 2 RepliesI am making a small application in which i have added a class module and a window forms in vb.net. i want to acess the shared variables and mathods of class without making any object.
View 8 Repliesexact diff b/t Static v/s Shared variables in VB.NET?
View 3 Repliesbasically i was wondering if we could inherit shared variables but restrict its scope to only that of the class itself.
Class A
Public Shared shared_variable as Boolean = true
End Class
[code]....
when i do this A.shared_variable = False, B's shared_variable also becomes false. how do i stop this?i cannot remove the Shared keyword because shared_variable should be able to be accessed without an instance of the class?
I've been doing some reading on garbage collection in .NET and I was hoping for some clarification. So, as I understand it if I declare a public shared class variable, the GC will never get rid of it. Is this correct?Also, what then of private variables? Take the following example:
public class myClass
private shared myString As String
public sub ChangeString(newString As String)
[code].....
So I am currently attempting to wrap my head around create multi-threaded programs and I am currently running into an issue when using a Shared variable across multiple threads.The program is structured as follows: Public Shared IsActive as Boolean
Main Thread = GUISets the Value of IsActive through a Button ControlTwo Worker ThreadsBoth threads are while loops that read the IsActive Boolean Ex:While IsActive = True Do Work End WhileHowever when I change the value of IsActive from the Main Thread it causes the worker threads to stop (ThreadState = 16).
I have been reading that I have to synchronize/lock shared resources and have tried SyncLock and Monitor methods without success (it is entirely possible I am not using the above correctly, so If someone could provide proper examples for the above situation using the mentioned methods please share them).
I have a List(Of AddlInfo) with AddlInfo being an object. I'm trying to pass addlInfoList by reference into a function of another class:
[Code]...
This works if I'm not passing the reference into another class, but when I try to do this, I get the following error: Overload resolution failed because no accessible 'Sort' can be called with these arguments:
[Code]...
how to pass system.type or a generic without much luck. I have two functions below one that works and the other that doesn't. I can't seem to make heads or tails of the VB syntax required for doing what I want to do.
' This function does not
'
' Also attempted it like this
' Public Shared Function UnserializeFromJSON(ByVal obj As String, ByRef ty As System.type)[code].......
I have created a public shared subroutine in a class file in asp.net 2 (vb.net) web site app_folder.The subroutine retrives some values from a sql database via an sql query and assigns the datareader field values to several variables The problem is I can't seem to assign the variables from the subroutine to the variables and textbox controls in the asp.net page I am calling the subroutine from. The textbox text value just appear blank.By the way, if I response.write the variables in the subroutine they appear populated by the sql data reader.
View 9 RepliesAre the following three the same upon compilation
dim x as new assigningfunction
dim x as new assigningfunction()
dim x as assigningfunction = new assigningfunction()
[code].....
Well I am a new to VB.NET, converting a legacy system to .NET world. Recently I have been reviewing the already existing code since I joined the project quite late in the team. I find that there are many shared functions (not shared class) inside many classes. I doubt this may create some problem if two requests ( i.e two different HTTP request to the same method as it's a WCF application, of course exposed methods are not shared but internally called methods are shared) comes to the same shared method and both the calls to the method may have different method parameters/arguments, overwriting each other's arguments. In short, if shared method has a list of arguments which is going to be processed, is there any chance of inconsistencies in the light of multiple access to the shared method via two http requests.
View 2 Repliesgive me a good resource that explains the difference between a Private, Public, Shared Functions/Sub/Variables? I normally use Public for Subs/Functions inside of Modules I call from other parts of the program. But I'd like to get more of an understanding of how and when to use them. I want as little as impact to a system that is running my programs as possible, so i guess the key here is I'm trying to just get more proficient in my coding.
View 8 RepliesI came across a number of new Private Shared variables (of type Hashtables(Of String), initialized in the declaration) added to a partial class for a very large (DataContext-derived) class. This seems sensible to me in one sense because they never change, and making these shared variables ensures that they won't get re-initialized every time a function is called. However, these variables are only used within the scope of one function in the class, and I fear the private namespace of this DataContext-derived class is getting rather polluted, and having these sorts of things exposed at such a high level might be confusing to others reading the code in the future.
Would there be negative performance impact to making these local variables within the function where they are used, or is there some better way to handle this? Basically we are using these 3 hashtables to determine whether anything within particular subsets of properties changed (using GetModifiedMembers and then using the Overlaps function of the hashset to see if any of the modified members correspond to members we care about).
Edit: I caved and took the time to write my own test program, which confirmed that there is a cost to using local variables (which I assume applies generally to all cases -- I doubt there's any case where a shared variable would be slower unless using the shared variable requires some additional logic to do so properly): [Code]
So in this particular case, using the local variable costs about 200%. But in most cases (including my own), the time is probably negligible compared to the overall task. So I guess the question now becomes, how do people generally feel about improving code maintainability at the cost of negligible but known performance impacts?