473,378 Members | 1,389 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

New to .net threads

I am writing my first .net thread, I need it to run until it is told to
stop. The thread will process records from a database table, sleep for x
milliseconds. I have all of that working, the issue I have is knowing when
the thread has been informed that it needs to stop. I've found Thread.Abort,
but that appears to cause the thread to exit right away and not let the
thread control when it will exit.

In Delphi I would have done the following:

Thread Code
while not (self.Terminated) do
begin
ReadDatabase;
Sleep(time);
end;

Main Code
Thread.Terminate;

Thread.Terminate would set Terminated to true thus causing the while loop to
exit normally from the thread. How would I duplicate this in .net?
--
Thanks
Wayne Sepega
Jacksonville, Fl

Enterprise Library Configuration Console Module Generator
http://workspaces.gotdotnet.com/elccmg

"When a man sits with a pretty girl for an hour, it seems like a minute. But
let him sit on a hot stove for a minute and it's longer than any hour.
That's relativity." - Albert Einstein
Nov 17 '05 #1
3 1284
Ron
You can do the same thing you are doing now. Use a boolean flag instead of
Self.Terminated. When you set it to true the thread will finish whatever it's
processing and then exit.

"Wayne" wrote:
I am writing my first .net thread, I need it to run until it is told to
stop. The thread will process records from a database table, sleep for x
milliseconds. I have all of that working, the issue I have is knowing when
the thread has been informed that it needs to stop. I've found Thread.Abort,
but that appears to cause the thread to exit right away and not let the
thread control when it will exit.

In Delphi I would have done the following:

Thread Code
while not (self.Terminated) do
begin
ReadDatabase;
Sleep(time);
end;

Main Code
Thread.Terminate;

Thread.Terminate would set Terminated to true thus causing the while loop to
exit normally from the thread. How would I duplicate this in .net?
--
Thanks
Wayne Sepega
Jacksonville, Fl

Enterprise Library Configuration Console Module Generator
http://workspaces.gotdotnet.com/elccmg

"When a man sits with a pretty girl for an hour, it seems like a minute. But
let him sit on a hot stove for a minute and it's longer than any hour.
That's relativity." - Albert Einstein

Nov 17 '05 #2
Wayne <Me******@community.nospam> wrote:
I am writing my first .net thread, I need it to run until it is told to
stop. The thread will process records from a database table, sleep for x
milliseconds. I have all of that working, the issue I have is knowing when
the thread has been informed that it needs to stop. I've found Thread.Abort,
but that appears to cause the thread to exit right away and not let the
thread control when it will exit.

In Delphi I would have done the following:

Thread Code
while not (self.Terminated) do
begin
ReadDatabase;
Sleep(time);
end;

Main Code
Thread.Terminate;

Thread.Terminate would set Terminated to true thus causing the while loop to
exit normally from the thread. How would I duplicate this in .net?


See http://www.pobox.com/~skeet/csharp/t...shutdown.shtml

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #3
Wayne <Me******@community.nospam> wrote:
In Delphi I would have done the following:

Thread Code
while not (self.Terminated) do
begin
ReadDatabase;
Sleep(time);
end;

Main Code
Thread.Terminate;

Thread.Terminate would set Terminated to true thus causing the while loop to
exit normally from the thread. How would I duplicate this in .net?


Following is another way of doing this.

class Worker
{
volatile bool stopping = false;

public void Stop() {
stopping = true;
}

[...]

void ThreadJob() {
while (!stopping) {
DoSomething();
}
}
}

Note the *volatile* flag. See
<http://www.yoda.arachsys.com/csharp/threads/volatility.shtml> for
rationale.
Nov 17 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Ronan Viernes | last post by:
Hi, I have created a python script (see below) to count the maximum number of threads per process (by starting new threads continuously until it breaks). ###### #testThread.py import...
0
by: Al Tobey | last post by:
I was building perl 5.8.2 on RedHat Enterprise Linux 3.0 (AS) today and noticed that it included in it's ccflags "-DTHREADS_HAVE_PIDS." I am building with -Dusethreads. With newer Linux...
6
by: m | last post by:
Hello, I have an application that processes thousands of files each day. The filenames and various related file information is retrieved, related filenames are associate and placed in a linked...
34
by: Kovan Akrei | last post by:
Hi, I would like to know how to reuse an object of a thread (if it is possible) in Csharp? I have the following program: using System; using System.Threading; using System.Collections; ...
3
by: bygandhi | last post by:
Hi - I am writing a service which will check a process and its threads for their state ( alive or dead ). The process has 5 .net managed threads created using thread.start and each have been...
10
by: [Yosi] | last post by:
I would like to know how threads behavior in .NET . When an application create 4 threads for example start all of them, the OS task manager will execute all 4 thread in deterministic order manes,...
6
by: RahimAsif | last post by:
Hi guys, I would like some advice on thread programming using C#. I am writing an application that communicates with a panel over ethernet, collects data and writes it to a file. The way the...
3
by: mjheitland | last post by:
Hi, I like to know how many threads are used by a Threading.Timer object. When I create a Threading.Timer object calling a short running method every 5 seconds I expected to have one additional...
10
by: Darian | last post by:
Is there a way to find all the thread names that are running in a project? For example, if I have 5 threads T1, T2, T3, T4, T5...and T2, T4, and T5 are running...I want to be able to know that...
4
by: tdahsu | last post by:
All, I'd appreciate any help. I've got a list of files in a directory, and I'd like to iterate through that list and process each one. Rather than do that serially, I was thinking I should...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.