473,414 Members | 1,630 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,414 software developers and data experts.

How to use AllocateNamedDataSlot method


AllocateNamedDataSlot defined as:
Threads use a local store memory mechanism to store thread-specific data.
The common language runtime allocates a multi-slot data store array to each
process when it is created. The thread can allocate a data slot in the data
store, store and retrieve a data value in the slot, and free the slot for
reuse after the thread expires. Data slots are unique per thread. No other
thread (not even a child thread) can get that data.

I am confused, is a data slot created once for all threads, or for each
thread?

I want to create many threads with the code below.

The goal is to create threads, each new thread being able to read the value
of

myValue=Thread.GetNamedDataSlot("HID"); // the value of HID will be
different for each thread

via

myUID=Thread.GetNamedDataSlot("UID");

in AllJobs.ThisJob


++ Code to create a thread ++

Thread t = new Thread(new ThreadStart(AllJobs.ThisJob));
t.Name = "H" + yHeaderID + "D" + yDetailID;
t.IsBackground = true;

//the next line breaks
t.AllocateNamedDataSlot("UID");
//the previous line breaks

LocalDataStoreSlot ldssUID;
ldssUID=Thread.GetNamedDataSlot("UID");
//the next line doesn't make any sense
Thread.SetData(ldssUID, yUID);
//the previous line doesn't make any sense

t.Start();
++ End of code to create a thread ++
Thank you
Nov 17 '05 #1
1 3255
xzzy,

There really is no reason to use this in .NET. Rather, you should
create a static field in your class and adorn it with the ThreadStatic
attribute. It will make sure that each thread has a different value.

You should then wrap that field in a property which will check the
value, making sure it is initialized properly before you access it.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"xzzy" <mr********@comcast.net> wrote in message
news:t5********************@comcast.com...

AllocateNamedDataSlot defined as:
Threads use a local store memory mechanism to store thread-specific data.
The common language runtime allocates a multi-slot data store array to
each
process when it is created. The thread can allocate a data slot in the
data
store, store and retrieve a data value in the slot, and free the slot for
reuse after the thread expires. Data slots are unique per thread. No other
thread (not even a child thread) can get that data.

I am confused, is a data slot created once for all threads, or for each
thread?

I want to create many threads with the code below.

The goal is to create threads, each new thread being able to read the
value
of

myValue=Thread.GetNamedDataSlot("HID"); // the value of HID will be
different for each thread

via

myUID=Thread.GetNamedDataSlot("UID");

in AllJobs.ThisJob


++ Code to create a thread ++

Thread t = new Thread(new ThreadStart(AllJobs.ThisJob));
t.Name = "H" + yHeaderID + "D" + yDetailID;
t.IsBackground = true;

//the next line breaks
t.AllocateNamedDataSlot("UID");
//the previous line breaks

LocalDataStoreSlot ldssUID;
ldssUID=Thread.GetNamedDataSlot("UID");
//the next line doesn't make any sense
Thread.SetData(ldssUID, yUID);
//the previous line doesn't make any sense

t.Start();
++ End of code to create a thread ++
Thank you

Nov 17 '05 #2

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

Similar topics

11
by: Dave Rahardja | last post by:
OK, so I've gotten into a philosophical disagreement with my colleague at work. He is a proponent of the Template Method pattern, i.e.: class foo { public: void bar() { do_bar(); } protected:...
5
by: Chris | last post by:
Hi I have a scenario where I've created another AppDomain to dynamically load a DLL(s) into. In this newly loaded DLL I want to call a static method on a class. The problem arise is that I have...
4
by: daniel.w.gelder | last post by:
I wrote a template class that takes a function prototype and lets you store and call a C-level function, like this: inline string SampleFunction(int, bool) {..} functor<string (int, bool)>...
7
by: greenflame | last post by:
I am trying to make a matrix object. I have given it some properites. I am trying to add a method. When I call the method by Test.showDims(...) I want to only enter one input, that is the method by...
5
by: Nick Flandry | last post by:
I'm running into an Invalid Cast Exception on an ASP.NET application that runs fine in my development environment (Win2K server running IIS 5) and a test environment (also Win2K server running IIS...
18
by: JohnR | last post by:
From reading the documentation, this should be a relatively easy thing. I have an arraylist of custom class instances which I want to search with an"indexof" where I'm passing an instance if the...
10
by: Mihai Osian | last post by:
Hi everyone, Given the code below, can anyone tell me: a) Is this normal behaviour ? b) If it is, what is the reason behind it ? I would expect the A::method(int) to be inherited by B. ...
9
by: Steve Richter | last post by:
in a generic class, can I code the class so that I can call a static method of the generic class T? In the ConvertFrom method of the generic TypeConvert class I want to write, I have a call to...
3
by: allendowney | last post by:
Hi All. In a complex inheritance hierarchy, it is sometimes difficult to find where a method is defined. I thought it might be possible to get this info from the method object itself, but it...
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
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

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.