windows service with threads

Please support our C# advertiser: Intel Parallel Studio Home
Thread Solved

Join Date: Feb 2006
Posts: 399
Reputation: chris5126 is an unknown quantity at this point 
Solved Threads: 14
chris5126 chris5126 is offline Offline
Posting Whiz

windows service with threads

 
0
  #1
Oct 6th, 2008
HI guys,

I need to create a windows service that runs a constant ping request to a list of servers and puts the data back into a text file for each server. It will read in from a text file with ip addresses in. It will also need to do other things but this is where i want to start. Now i don't want it written for me i just would like some helpful tips. I have never programmed in c# before and so dont have a clue. Got this of a microsoft website understand it but its still not that helpful. Cheers in advance for any help. Also it gives me the impression that only one thread can run at a time i need to ping around 20 servers at the same time is this possible it must be?

  1. using System;
  2. using System.Threading;
  3.  
  4. public class Worker
  5. {
  6. // This method will be called when the thread is started.
  7. public void DoWork()
  8. {
  9. while (!_shouldStop)
  10. {
  11. Console.WriteLine("worker thread: working...");
  12.  
  13. }
  14. Console.WriteLine("worker thread: terminating gracefully.");
  15. }
  16. public void RequestStop()
  17. {
  18. _shouldStop = true;
  19. }
  20. // Volatile is used as hint to the compiler that this data
  21. // member will be accessed by multiple threads.
  22. private volatile bool _shouldStop;
  23. }
  24.  
  25. public class WorkerThreadExample
  26. {
  27. static void Main()
  28. {
  29. // Create the thread object. This does not start the thread.
  30. Worker workerObject = new Worker();
  31. Thread workerThread = new Thread(workerObject.DoWork);
  32.  
  33. // Start the worker thread.
  34. workerThread.Start();
  35. Console.WriteLine("main thread: Starting worker thread...");
  36.  
  37. // Loop until worker thread activates.
  38. while (!workerThread.IsAlive) ;
  39.  
  40. // Put the main thread to sleep for 1 millisecond to
  41. // allow the worker thread to do some work:
  42. Thread.Sleep(1);
  43.  
  44. // Request that the worker thread stop itself:
  45. workerObject.RequestStop();
  46.  
  47. // Use the Join method to block the current thread
  48. // until the object's thread terminates.
  49. workerThread.Join();
  50. Console.WriteLine("main thread: Worker thread has terminated.");
  51.  
  52. }
  53. }
If my post helped add to my rep!
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 1,735
Reputation: LizR has a spectacular aura about LizR has a spectacular aura about 
Solved Threads: 186
LizR LizR is offline Offline
Posting Virtuoso

Re: windows service with threads

 
0
  #2
Oct 6th, 2008
No, you can have a large number of threads running at any time, although actual activity is limited and timeshared over the available CPU power of your box.

eg, if you have a single CPU with HT - thus pretending to be 2 CPUs directly technically it does only 2 things at a time, however with fancy timesharing by windows it will appear more than 2 threads run (for example take a look in task manager and see how many processes there are, let alone if you use something like sysinternals process explorer and see how many threads per process)

OK, as a rule a service should not make windows or write to consoles - as a lot of the server versions of windows are either set not to, or dont by default allow it

Other things to remember when making a service is that if you as a user map a drive, the service cant see it, even if it runs "as you" .. it has its own instance, and wont see any mapped drives, it should do its own.

As you're making some form of net monitoring system, a text file is possibly not a good place to keep things, as the more servers you get the more likely you are to run into file locking issues.

The key facts are however, for all the threads you start you must terminate them.. and handle any issues within them.
Reply With Quote Quick reply to this message  
Join Date: Feb 2006
Posts: 399
Reputation: chris5126 is an unknown quantity at this point 
Solved Threads: 14
chris5126 chris5126 is offline Offline
Posting Whiz

Re: windows service with threads

 
0
  #3
Oct 6th, 2008
hi,

basically i am getting unix servers to write to a shared drive, this needs to be read in by a windows service and added to a sql server database. This i think shld be done by a windows service that runs at startup. At the end it will need to check the database is up and check a shared drive and some other statup checks. Then runnin in threads it needs to check for new monitoring files read them add them to a sql server database and then delete them. It also needs to ping a list of servers from a database and add the ping response times bck into a databse. I dont want the windows service to display any consoles etc just run in the background. All info will be displayed in a c# front end that will read in from the sql server database.

So a windows service cant read or delete from a shared drive what about if it maps it itself as part of statup?

Thanks for your help
If my post helped add to my rep!
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 1,735
Reputation: LizR has a spectacular aura about LizR has a spectacular aura about 
Solved Threads: 186
LizR LizR is offline Offline
Posting Virtuoso

Re: windows service with threads

 
0
  #4
Oct 6th, 2008
I did mention it would have to map its own but it should also have code in case that drive disconnects (such as something goes wrong)..

If your app runs as a service, and is set to autostart, it would run on startup.
Reply With Quote Quick reply to this message  
Join Date: Feb 2006
Posts: 399
Reputation: chris5126 is an unknown quantity at this point 
Solved Threads: 14
chris5126 chris5126 is offline Offline
Posting Whiz

Re: windows service with threads

 
0
  #5
Oct 7th, 2008
spot on thanks very much.

Do you have any helpful hints for the code or places I could start looking.
If my post helped add to my rep!
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 1,735
Reputation: LizR has a spectacular aura about LizR has a spectacular aura about 
Solved Threads: 186
LizR LizR is offline Offline
Posting Virtuoso

Re: windows service with threads

 
0
  #6
Oct 7th, 2008
Well, what have you googled, and read on the "similar threads" at the bottom of this page?
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the C# Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC