tag:blogger.com,1999:blog-8596733192274108952.post1123844372786412760..comments2024-03-12T06:00:18.305+02:00Comments on Programming stuff: Асинхронные операции и AsyncEnumeratorSergey Teplyakovhttp://www.blogger.com/profile/14300835272589262297noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-8596733192274108952.post-91357152806023397302018-08-22T16:52:34.166+03:002018-08-22T16:52:34.166+03:00lock (numbersSynchandle) в ResumeIterator() должен...lock (numbersSynchandle) в ResumeIterator() должен стоять перед while (iterationFinished = enumerator.MoveNext())Anonymoushttps://www.blogger.com/profile/08026370549527540567noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-54106481899091978442010-12-10T19:07:24.866+02:002010-12-10T19:07:24.866+02:00@Mik: Да, мы получаем классическую гонку, поэтому ...@Mik: Да, мы получаем классическую гонку, поэтому для борьбы с этим нам нужны дополнительные средства синхронизации.Sergey Teplyakovhttps://www.blogger.com/profile/14300835272589262297noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-43204151458337639152010-11-03T17:27:48.244+02:002010-11-03T17:27:48.244+02:00Наверное проблема в том, что Set возникает сразу п...Наверное проблема в том, что Set возникает сразу после получения Response.<br />Потом основной поток продолжает работать и выводит сообщение "Все скачали"<br />И только потом выполняется лямбда, которая выводит резцультат по последнему потоку <br />:(Mikhttps://www.blogger.com/profile/01620774677460587279noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-78765131067211707922010-11-03T14:23:23.108+02:002010-11-03T14:23:23.108+02:00Set будет дернут автоматически при завершении асин...Set будет дернут автоматически при завершении асинхронной операции. См. документацию на <a href="http://msdn.microsoft.com/en-us/library/system.iasyncresult.asyncwaithandle.aspx" rel="nofollow">IAsyncResult.AsyncWaitHandle</a>:<br /><i>Gets a WaitHandle that is used to wait for an asynchronous operation to complete.</i>Sergey Teplyakovhttps://www.blogger.com/profile/14300835272589262297noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-57079016556346363622010-11-03T09:38:43.002+02:002010-11-03T09:38:43.002+02:00Ну так этот код есть, но нету кода который дает си...Ну так этот код есть, но нету кода который дает сиглан о завершении потока. Что будет ждать WainAny если никто Set не скажет ?Mikhttps://www.blogger.com/profile/01620774677460587279noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-39169694894699360702010-11-03T04:48:16.511+02:002010-11-03T04:48:16.511+02:00Ну, дело не в том, что этот код не работает. Я нам...Ну, дело не в том, что этот код не работает. Я намеренно убрал из этого метода код, ожидающий завершения (хотя вомозможно и зря). У меня в реальном тестовом примере используется такой код в самом конце функции LambdaBasedApm:<br /><br /><br /> // Этим "хитрым" способом мы обходим проблему вызова метода WaitHandle.WaitAll<br /> // с STAThreading Appartments<br /> var handles = new WaitHandle[] {ar1.AsyncWaitHandle, <br /> ar2.AsyncWaitHandle, ar3.AsyncWaitHandle};<br /> foreach(var myWaitHandle in handles)<br /> WaitHandle.WaitAny(new WaitHandle[]{myWaitHandle});Sergey Teplyakovhttps://www.blogger.com/profile/14300835272589262297noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-79945673522761257862010-11-02T15:06:00.946+02:002010-11-02T15:06:00.946+02:00Ну программа примерно такя
static void Main(string...Ну программа примерно такя<br />static void Main(string[] args)<br /> {<br /> LambdaBasedApm();<br /> Console.WriteLine("Все скачали");<br /> Console.ReadLine();<br /> }Mikhttps://www.blogger.com/profile/01620774677460587279noreply@blogger.comtag:blogger.com,1999:blog-8596733192274108952.post-83766689624144260612010-11-02T15:04:40.681+02:002010-11-02T15:04:40.681+02:00Ваш код про LambdaBasedApm не работает...
Не могу ...Ваш код про LambdaBasedApm не работает...<br />Не могу понять как главный поток будет ждать дочерние потоки.<br /><br />http://rsdn.ru/: 1672, elapsed 81ms<br />http://gotdotnet.ru/: 81782, elapsed 336ms<br />Все скачали<br />http://blogs.msdn.com/: 47784, elapsed 617msMikhttps://www.blogger.com/profile/01620774677460587279noreply@blogger.com