htm11h
htm11h

Reputation: 1779

Need to hold request for a thread until previous request is finished

I am looking for a technique to hold off on requesting a thread (background worker, Task, etc,) from starting while a previous thread is still processing. The thread has an object writer and if it is busy I cannot use it in the next thread until it finishes its write.

Note, that the processing that occurs before each thread request is sufficiently long enough that there should not be an issue, this is just precautionary.

I am guessing that how I request the thread here is critical to having some sort of response back that will allow the next thread to get called. But I could use some help on how to set this up. If anyone has a specific scenario of similar design I would be happy researching the recommended technique. Sort of new to this sort of thread processing.

vb.net

Upvotes: 1

Views: 45

Answers (2)

William Xifaras
William Xifaras

Reputation: 5312

I'm not sure how you plan on implementing this, but you should try and use the TPL vs. using Threads directly. With Tasks, you can wait on them to complete.

See the following example https://msdn.microsoft.com/en-us/library/dd537610(v=vs.100).aspx

And read the following on Threads vs. Tasks if you need more information on the differences.

http://blog.slaks.net/2013-10-11/threads-vs-tasks/

Upvotes: 1

Terry Carmen
Terry Carmen

Reputation: 3886

Typically mutexes are used for synchronization.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684266(v=vs.85).aspx

Note that you'll also need handle WAIT_ABANDONED, which is the status when a thread that had the mutex dies instead of finishing.

Examples and more info for .Net here: https://msdn.microsoft.com/en-us/library/system.threading.mutex(v=vs.110).aspx

Upvotes: 0

Related Questions