none
volání do vláken

    Dotaz

  • Dobrý den,
    Vytvořil jsem program (form), kde se provádí velký výpočet, tudíž bych ho chtěl vložit do vlákna, ale zjistil jsem, že ten program je ve "void"
    void funkce(argumenty)
    {
    txtBox.Text = "bla bla bla...";
    }
    Následně při pokusu vložení této funkce do vlákna
    Thread t = new Thread(funkce(argumenty));
    t.Start();
    mi to vypisuje : The best overloaded method match for 'System.Threading.Thread.Thread(System.Threading.ThreadStart)' has some invalid arguments, Což jsem vyzjistil, že né všechny argumenty ve funkci jsou validní a jsou správně volány, třeba textbox txtBox již nelze volat, stejně jako zbylých nemálo dalších argumentů.
    Další error je : Argument '1': cannot convert from 'void' to 'System.Threading.ThreadStart' , Takže podle většiny návodů jsem změnil void na static void a úplně všechny výstupy z funkce to nemůže najít, jen argumenty, co jsou přímo v zadání funkce(argumenty) .

    Prosím poraďte, jak tuto nemilou věc vyřešit. Už si vážně nevím rady :(...
    Děkuji
    sobota 8. srpna 2009 16:09

Odpovědi

  • Jeden parameter konstruktora triedy Thread je delegat ThreadStart , preto chyba Argument '1': cannot convert from 'void' to 'System.Threading.ThreadStart' , prva chyba suvisi s tou druhou, lebo mas nespravny argument.

    Spravne by bolo.

    ThreadStart threadStart = new ThreadStart(<IdentifikatorFunkcie>);

    Thread thread = new Thread(threadStart);

    thread.start();


    Ak do vlakna chces vlozit nejake vstupne udaje pouzi ParameterizedThreadStart delegata.
    • Navržen jako odpověď Petr Barták pondělí 17. srpna 2009 20:09
    • Označen jako odpověď Dusa pondělí 17. srpna 2009 21:54
    úterý 11. srpna 2009 8:36

Všechny reakce