在上一个请求完成之前需要保留一个线程请求

时间:2016-07-20 19:31:19

标签: vb.net multithreading

我正在寻找一种技术来阻止请求线程(后台工作者,任务等)在前一个线程仍在处理时启动。该线程有一个对象编写器,如果它很忙,我不能在下一个线程中使用它,直到它完成写入。

请注意,在每个线程请求之前发生的处理足够长以至于不应该存在问题,这只是预防性的。

我猜我在这里请求线程对于获得某种类型的响应是至关重要的,这将允许调用下一个线程。但我可以使用一些帮助来设置它。如果有人有类似设计的特定场景,我会很乐意研究推荐的技术。这种线程处理的新变种。

vb.net

2 个答案:

答案 0 :(得分:1)

我不确定你打算如何实现这一点,但是你应该尝试使用TPL而不是直接使用Threads。使用Tasks,您可以等待它们完成。

请参阅以下示例https://msdn.microsoft.com/en-us/library/dd537610(v=vs.100).aspx

如果您需要有关差异的更多信息,请阅读以下有关线程与任务的内容。

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

答案 1 :(得分:0)

通常,互斥锁用于同步。

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

请注意,您还需要处理WAIT_ABANDONED,这是具有互斥锁而不是完成的线程的状态。

.Net的示例和更多信息:https://msdn.microsoft.com/en-us/library/system.threading.mutex(v=vs.110).aspx