Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Threading problem

Posted on 2003-11-13
7
Medium Priority
?
293 Views
Last Modified: 2010-04-16
I have a bunch of threads that perform some of the longer operations in my program.  I am using the form:

ThreadStart starter = new ThreadStart(func);
Thread t = new Thread(starter);
t.Start();

1.  Should I change it all to delegates, does it matter?

2.  When I close my main application window, threads still run to completion, I want to kill them all.
3.  When a user logs off but the program is still running, I want to kill all open threads (or at least notify the UI to wait until they have completed).

What is the best way to structure this?
0
Comment
Question by:jjacksn
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
7 Comments
 
LVL 11

Expert Comment

by:Agarici
ID: 9741587
if you want to stop the working when your main window has been closed, you can call Abort() on each runing thread in your main windows close event handler.

to have a thread waiting for another thread to terminate, use Join() on the first thread.
0
 
LVL 5

Author Comment

by:jjacksn
ID: 9741858
so I just have a list of threads Thread[] and call t.WhatyouSaid from my main, calling thread?  

when the thread completes, will calling t.Join() or t.Abort() throw an error, or just do nothing?
0
 
LVL 5

Author Comment

by:jjacksn
ID: 9741893
Should I be using thread pools for this?  If so, how do I do that (can you point me to a tutorial).
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 48

Expert Comment

by:AlexFM
ID: 9742042
0
 
LVL 48

Expert Comment

by:AlexFM
ID: 9742081
This article describes how to run a worker thread, send information from it to main thread and stop worker thread correctly.

About thread pool - thread pool is used when all threads make the same work which may be done by same thread function. For example, threads talking with clients in HTTP server. If this is your case, and number of clients is not restricted, consider using thread pool.
If all your threads are different, each one of them make it's own work, use the way described in the article for each thread.
0
 
LVL 5

Author Comment

by:jjacksn
ID: 9744924
They are pretty simple threads, I'm just using them for calls to remote objects that take a while.
0
 
LVL 22

Accepted Solution

by:
_TAD_ earned 1000 total points
ID: 9745466


ThreadStart starter = new ThreadStart(func);
Thread t = new Thread(starter);
t.isBackground = true;
t.Start();


By setting the thread to a background thread means that when the main thread is killed, all other threads die immediately
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question