Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Mon Oct 19 00:44:23 CDT 2009
<<< Anyway, because the class method that the thread runs has to be static >>> Hi John, Threads can run on instance methods - here is just a quick sample - no static methods used at all except console app's entry method: using System; using System.Threading; namespace ConsoleApplication1 { public class ThreadRunner { private int _threadNum; public ThreadRunner(int threadNum) { _threadNum = threadNum; } public void Run() { Console.WriteLine("{0:HH:mm.ss.fff}: Thread#{1} started, Id = {2}", DateTime.Now, _threadNum, Thread.CurrentThread.ManagedThreadId); Thread.Sleep(1100 - _threadNum*100 ); Console.WriteLine("{0:HH:mm.ss.fff}: Thread#{1} finished.", DateTime.Now, _threadNum); } } public class ThreadManager { public void StartThreads() { for (int i = 1; i<=10; i++) { Thread th = new Thread(RunThread); th.Start(new ThreadRunner(i)); } } public void RunThread(object threadRunner) { ThreadRunner tr = (ThreadRunner)threadRunner; tr.Run(); } } class Program { static void Main(string[] args) { (new ThreadManager()).StartThreads(); } } } Here is output this sample produces: 09:41.53.519: Thread#3 started, Id = 5 09:41.53.519: Thread#1 started, Id = 3 09:41.53.522: Thread#4 started, Id = 6 09:41.53.524: Thread#5 started, Id = 7 09:41.53.520: Thread#2 started, Id = 4 09:41.53.524: Thread#6 started, Id = 8 09:41.53.524: Thread#7 started, Id = 9 09:41.53.524: Thread#8 started, Id = 10 09:41.53.524: Thread#9 started, Id = 11 09:41.53.524: Thread#10 started, Id = 12 09:41.53.625: Thread#10 finished. 09:41.53.724: Thread#9 finished. 09:41.53.824: Thread#8 finished. 09:41.53.924: Thread#7 finished. 09:41.54.024: Thread#6 finished. 09:41.54.124: Thread#5 finished. 09:41.54.223: Thread#4 finished. 09:41.54.323: Thread#3 finished. 09:41.54.424: Thread#2 finished. 09:41.54.523: Thread#1 finished. -- Shamil -----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 10:27 PM To: VBA Subject: [dba-VB] Threads and stuff .... Anyway, because the class method that the thread runs has to be static ... -- John W. Colby www.ColbyConsulting.com __________ Information from ESET NOD32 Antivirus, version of virus signature database 4520 (20091018) __________ The message was checked by ESET NOD32 Antivirus. http://www.esetnod32.ru