[Вопрос] NET C# Реализация управляемого кол-во потоков

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by KAAAAAARL, 9 Aug 2011.

  1. KAAAAAARL

    KAAAAAARL New Member

    Joined:
    31 May 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Всем доброго времени суток.
    Хотел бы спросить у вас как можно реализовать данное?
    есть чекер,мне нужно что бы я мог указать определенное кол-во потоков,как в обычном бруте.
    я не много по говнокодив получил следующие
    Code:
    int kolvo = int.Parse(textBox2.text);
    pp = new Thread[kolvo];
                for (int i = 0; i < 10; i++)
                {
                    pp[i] = new Thread(new ThreadStart(Metohod));
                    pp[i].Start();
                 }
    
    Получилось как я и ожидал УГ.
    Спасибо :)
     
    #1 KAAAAAARL, 9 Aug 2011
    Last edited: 9 Aug 2011
  2. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    http://msdn.microsoft.com/ru-ru/library/0ka9477y(v=vs.90).aspx
    и далее копай в эту сторону если я правильно понял)
     
    _________________________
  3. KAAAAAARL

    KAAAAAARL New Member

    Joined:
    31 May 2011
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Не много не то.
    Обьясню на примере -
    Code:
    int kolvo = 3
    pp = new Thread[kolvo];
                for (int i = 0; i < kolvo; i++)
                {
                    pp[i] = new Thread(new ThreadStart(Metohod));
                    pp[i].Start();
                 }
    
    public void Method()
    {
    int i = 0;
       textBox1.Invoke(new EvetHandler(delegate{textBox1.Text = i+=1;}));
    }
    
    По сути я должен получить - 1,2.3 но получаю 1,1,1
     
  4. fox_malder

    fox_malder Active Member

    Joined:
    28 Nov 2008
    Messages:
    162
    Likes Received:
    131
    Reputations:
    73
    KAAAAAARL а почему у тебя в коде 2 раза объявляется переменная i ?
    она у тебя в цикле идет и в функции идет ??
     
  5. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    убери все объявления I и объяви ее как глобавльную:
    Code:
    public int i=0;
    ...
    int kolvo = 3;
    pp = new Thread[kolvo];
                for (i = 0; i < kolvo; i++)
                {
                    pp[i] = new Thread(new ThreadStart(Metohod));
                    pp[i].Start();
                 }
    
    public void Method()
    {
       textBox1.Invoke(new EvetHandler(delegate{textBox1.Text = i+=1;}));
    }
    
     
    #5 realcoder, 9 Aug 2011
    Last edited: 9 Aug 2011