Hirdetés

Új hozzászólás Aktív témák

  • x007

    tag

    válasz FehérHolló #1395 üzenetére

    WinForms elemekhez csak a GUI szálból férhetsz hozzá, különben kivétel dobódik (ki lehet kapcsolni, de ne tegyük, nem kibaszásból csinálták :)). Ezzel kizárva az Items propertyn keresztül való hozzáadás.

    Ha BindingSource-t használsz, akkor is kivétel dobodik, hiszen a BindingSource is egy WinForms control.
    personBindingSource.Add(new Person() { FirstName = "Jakab", LastName = "Gipsz" });

    ThreadPool.QueueUserWorkItem((s) =>
    {
    personBindingSource.Add(new Person() { FirstName = "John", LastName = "Smith" });
    });

    BindingList-tel viszont lehet másik szálból hozzáadni elemet. Engem ez személy szerint meglepett, mert WPF-be ilyenkor is kivétel dobódik (szerintem ez utóbbi a helyes működés).

    var collection = new BindingList<Person>();
    dataGridView1.DataSource = collection;

    collection.Add(new Person() { FirstName = "Jakab", LastName = "Gipsz" });

    ThreadPool.QueueUserWorkItem((s) =>
    {
    collection.Add(new Person() { FirstName = "John", LastName = "Smith" });
    });

    Én azt tanácsolom, hogy csak GUI szálból adj az adatforráshoz elemet. Nagy szívásokba eshetsz bele, ha nem tartod ehhez magad.

Új hozzászólás Aktív témák