<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2759399</guid>
        <pubDate>Tue, 23 Nov 2010 19:52:07 +0000</pubDate>
        <title>PulseEvent</title>
        <link>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2759399</link>
        <description><![CDATA[secondd: Большое спасибо за разъяснение&#33; Ответ получен&#33; :)]]></description>
        <author>secondd</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2759081</guid>
        <pubDate>Tue, 23 Nov 2010 13:38:11 +0000</pubDate>
        <title>PulseEvent</title>
        <link>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2759081</link>
        <description><![CDATA[Qraizer: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=319156&view=findpost&p=2758820'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>secondd &#064; <time class="tag-quote__quoted-time" datetime="2010-11-23T09:21:03+00:00">23.11.10, 09:21</time></span><div class='quote '>Будут ли гарантированно пробуждены все потоки ожидающие это событие?</div></div>Да.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=319156&view=findpost&p=2758820'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>secondd &#064; <time class="tag-quote__quoted-time" datetime="2010-11-23T09:21:03+00:00">23.11.10, 09:21</time></span><div class='quote '>&quot;Особой пользы от PulseEvent я не вижу В сущности, я никогда не пользовался ею на практике, потому что абсолютно неясно, какой из потоков заметит этот импульс и станет планируемым&quot;</div></div>Судя по всему, кривой перевод. Ни один из объектов синхронизации при использовании хоть какой функции не даёт такой ясности. Тут ИМХО имеется в виду как раз вот это:<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=319156&view=findpost&p=2758970'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>secondd &#064; <time class="tag-quote__quoted-time" datetime="2010-11-23T11:41:44+00:00">23.11.10, 11:41</time></span><div class='quote '>Если один из ожидающих потоков в момент посылки PulseEvent будет еще отрабатывать предыдущий вызов и не успеет встать в ожидание, что будет тогда? Он пропустит этот вызов или отработает его по завершении своей задачи? </div></div>Пропустит. PulseEvent() взводит событие, влияет на ожидающие его нитки и опускает обратно. Если нет ни одного ожидающего, этот пульс вообще никто не увидит. Если же это событие входит в массив, который нитка ожидает, например, WaitForMultipleObjects() с флагом bWaitAll==TRUE, и при этом не все остальные объекты из этого массива взведены, то событие будет пропущено даже при ожидании этого массива.<br>
Т.е. в той фразе видимо имеется ввиду &quot;...потому что абсолютно неясно, заметит ли какой-нибудь из потоков этот импульс и станет планируемым&quot;. Имется ввиду, что используемый PulseEvent() программер на знает в точности, как, кто и когда будет это событие ожидать, а это практически всегда так. В общем, PulseEvent() &quot;не гарантирует доставку&quot;.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758970</guid>
        <pubDate>Tue, 23 Nov 2010 11:41:44 +0000</pubDate>
        <title>PulseEvent</title>
        <link>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758970</link>
        <description><![CDATA[secondd: Попробовать то конечно надо будет, только вот пара тестов где отработали все потоки может не дадут гарантии что так будет всегда в приложении с большим кол-вом потоков под большой нагрузкой.<br>Может кто знает как эта функция устроена, что бы быть уверенным что &quot;должно быть именно так&quot;<br><br>Еще вопрос к опытным товарищам:<br>Если один из ожидающих потоков в момент посылки PulseEvent будет еще отрабатывать предыдущий вызов и не успеет встать в ожидание, что будет тогда? Он пропустит этот вызов или отработает его по завершении своей задачи?]]></description>
        <author>secondd</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758931</guid>
        <pubDate>Tue, 23 Nov 2010 11:03:13 +0000</pubDate>
        <title>PulseEvent</title>
        <link>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758931</link>
        <description><![CDATA[popsa: :) так попробуй на тестовой програмке, писать то 3 строчки]]></description>
        <author>popsa</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758820</guid>
        <pubDate>Tue, 23 Nov 2010 09:21:03 +0000</pubDate>
        <title>PulseEvent</title>
        <link>https://forum.sources.ru/index.php?showtopic=319156&amp;view=findpost&amp;p=2758820</link>
        <description><![CDATA[secondd: Перечитал Рихтера, но так и не могу понять как будет работать PulseEvent.<br><br>Суть такая:<br>Создаю событие CreateEvent(NULL, TRUE, FALSE, NULL); со сбросом вручную<br>Это событие в WaitForMultipleObjects ожидают несколько потоков<br><br>Что будет если вызову PulseEvent?<br>Будут ли гарантированно пробуждены все потоки ожидающие это событие?<br><br>В книге в одном месте написано: &quot;Если Вы вызываете PulseEvent для события со сбросом вручную, любые потоки, ждущие этот объект; становятся планируемыми. При вызове этой функции применительно к со бытию с автосбросом пробуждается только одип из ждущих потоков.&quot; <br>А в другом месте: &quot;Особой пользы от PulseEvent я не вижу В сущности, я никогда не пользовался ею на практике, потому что абсолютно неясно, какой из потоков заметит этот импульс и станет планируемым&quot;]]></description>
        <author>secondd</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      </channel>
      </rss>
	