Про Thread
От: Disa Россия  
Дата: 20.02.04 07:24
Оценка:
Почему когда я создаю поток то загрузка проца подлетает до 100%
Вроде делаю все по книжке
Вот этот код


public class Form1 : System.Windows.Forms.Form
    {
                ....

        static void Main() 
        {
            Form1 f=new Form1();
         Thread t;
            t=new Thread(new ThreadStart(f.StartThread));
            t.Start();
            Application.Run(f);
            t.Abort();
        }
        public void StartThread()
        {
            while(true)
            {

            }
        }
    }



20.02.04 16:58: Перенесено модератором из '.NET GUI' — AVK
Re: Про Thread
От: Ведмедь Россия  
Дата: 20.02.04 07:27
Оценка: :)
Здравствуйте, Disa, Вы писали:

А чем поток занимается? Если он делает какие то тяжелые вычисления, то все понятно.
Да пребудет с тобой Великий Джа
Re: Про Thread
От: SiAVoL Россия  
Дата: 20.02.04 07:39
Оценка: +1
Здравствуйте, Disa, Вы писали:
D>Почему когда я создаю поток то загрузка проца подлетает до 100%
D>
D>        public void StartThread()
D>        {
D>            while(true)
D>            {
D>            }
D>        }
D>


Мне вот этот участок почему-то кажется странным
... << RSDN@Home 1.1.3 beta 1 >>
Re[2]: Про Thread
От: Dima_Ch Беларусь  
Дата: 20.02.04 07:57
Оценка:
Здравствуйте, SiAVoL, Вы писали:

SAV>Здравствуйте, Disa, Вы писали:

D>>Почему когда я создаю поток то загрузка проца подлетает до 100%
D>>
D>>        public void StartThread()
D>>        {
D>>            while(true)
D>>            {
D>>            }
D>>        }
D>>


SAV>Мне вот этот участок почему-то кажется странным

Ничего странного, бесконечный цикл для загрузки процессора
Кстати,если сильно смущает , то лучше вставить что-то вроде
System.Threading.Thread.Sleep(1);

в тело цикла
Re: Про Thread
От: ABCDEFG  
Дата: 20.02.04 10:00
Оценка:
D> while(true)
D> {

D> }


Это подгрузит проц на 100% в любом потоке, даже если запустить без всяких дополнительных, в основном.
Re: Про Thread
От: Sinatr Германия  
Дата: 20.02.04 11:06
Оценка:
Привет!

Попробуй так:

  public void StartThread()
  {
    while(true)
    {
      // тут что-то делаем

      // передаем управление другим тредам
      Thread.Sleep(0);
    }
  }


А вообще странно, что оно у тебя тормозит, может что-то не так с приоритетами? Или дебуггер отжирает 100% (или к примеру nfsu )...
---
ПроГLамеры объединяйтесь..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.