Michael Maddison
michael at ddisolutions.com.au
Sun Oct 18 17:47:17 CDT 2009
Hi John, I havn't delved deeply into the threading model in .net. I have used the background worker object from time to time though. The way that works is using events to pass data to and from your threaded class. It's always worked well for my modest needs. That said, will the 'volatile' keyword help you? Cheers Michael M Yes. I have to in order for the shared method to see them. John W. Colby www.ColbyConsulting.com Charlotte Foust wrote: > Are you declaring the properties shared? > > Charlotte Foust > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Friday, October 16, 2009 11:27 AM > To: VBA > Subject: [dba-VB] Threads and stuff > > I am trying to figure out threads. My biggest question has to do with > static declarations. It appears that the thread initialization requires > a static method to call. > > I have a class which will start an external program / process. This > process hangs the thread it runs on until the external program closes or > the ProcessStartInfo times out at which point ProcessStartInfo shuts > down the external process. It is this thing that I am trying to do in a > thread. I thought I would build a class, the class would contain all > the thread stuff, set up the thread, start the thread etc. Thus I could > simply instantiate the class, pass in the program to run, and call a > start() method to cause the class' own thread to run the process. I got > all of that working but... the static function that the thread runs is > not visible from outside of the class if the class is instantiated. > That was unexpected. I understand that a static function is designed to > allow calling it without instantiating the class, however it makes sense > to me to instantiate the class once for each program instance I want to > run. The thread that runs the program instance belongs to the class > instance that opens the program instance. > Am I deluded? > Anyway, because the class method that the thread runs has to be static, > all of the class properties (name of the program to open etc) have to be > static. I really want to initialize the class and manually call the > same function that the thread will call but it seems that static and > non-static cannot talk to each other. IOW I had to copy and paste the > static method to another non-static method and call the non-static > method from the calling class. Even inside of my class I couldn't call > the non-static method from inside of the static method. Every property > and method reference from inside of the static method had to be declared > static as well. > > -- > John W. Colby > www.ColbyConsulting.com > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com