Блог Майкова

«Информация на данном сайте предоставляется "КАК ЕСТЬ" без каких-либо гарантий и передачи прав. Мнения, высказанные здесь, являются отражением моего личного взгляда, а не позиции работодателя.»

Нити

Этот код (на С#) содержит интересную ошибку:

      public class ParallelPageFetcher

      {

            public ParallelPageFetcher(string cachePath)

            {

                  Thread t = new Thread(new ThreadStart(RunRequests));

                  t.Start();

            }

 

            void RunRequests()

            {

                  // blaah

            }

      }

Ошибка заключается в том, что на обьект под именем t не сохраняется ссылок, и он неминуемо оказывается "сьеденным" сборщиком мусора. Что влечет за собой завершение работы нити. Внешне эта ошибка ничем себя не проявляет. Просто нить перестает работать. Чтобы починить, достаточно сделать t переменной класса. Не попадитесь!

Кстати, по названию класса можете сделать косвенные выводу чем я сейчас занимаюсь. Позже напишу подробнее. 

 

Published Friday, November 16, 2007 11:28 PM by maykov

Comments

No Comments
Anonymous comments are disabled

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker