2016-07-20 1 views
1

Я ищу технику, которую можно отложить при запросе потока (фонового рабочего, задачи и т. Д.) От начала, пока предыдущий поток все еще обрабатывается. В потоке есть объект-писатель, и если он занят, я не могу использовать его в следующем потоке, пока он не закончит запись.Необходимо сохранить запрос на поток до тех пор, пока не будет завершен предыдущий запрос.

Обратите внимание, что обработка, которая возникает перед каждым запросом потока, достаточно длинна, чтобы не было проблемы, это просто предосторожно.

Я угадываю, что, как я прошу об этом, здесь важно иметь какой-то ответ, который позволит вызвать следующий поток. Но я мог бы использовать некоторую помощь в том, как это сделать. Если у кого-то есть конкретный сценарий подобного дизайна, я был бы счастлив исследовать рекомендованную технику. Сорт нового для такого рода обработки потоков.

vb.net

ответ

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

+0

Я читаю на это сейчас, выглядит многообещающим. Также был найден раздел «Использование объектов критического сечения». Спасибо за ваш ответ. – htm11h

+0

Первая ссылка была обзор. Вторая ссылка - .net –

1

Я не знаю, как вы планируете реализацию, но вы должны попытаться использовать TPL против использования темы напрямую. С Tasks вы можете дождаться завершения.

следующий пример https://msdn.microsoft.com/en-us/library/dd537610(v=vs.100).aspx

И прочитал следующее на нитях против задач, если Вам необходима дополнительная информация о различиях.

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

+0

, просто конструируя его сейчас, пытаясь выяснить, как это сделать. спасибо за ваш ответ, я прочитаю ссылку. – htm11h

Смежные вопросы