RTMPekka kirjoitti:
Säikeet on pikkaisen hankalia tai no ei silleen, mutta tarkkana saa olla. Windows kun ajaa käyttöliittymää aina yhdessä thredissä niin pitää muistaa vaihtaa thrediä aina jos käpistelee käyttöliittymää. Ja lukkoja sitten sen mukaan miten samoja objekteja käytellään eri thredeistä.
Vinkki! Kannattaa tutustua Task:hin ja niihin liittyviin juttuihin. Pääsee vähän helpommalla.
Monimutkaisemmissa ohjelmistoissa varmasti rupeaa hiukset vähenemään jossain kohtaa säikeiden kanssa :D
Invoke taisi liittyä tuohon käyttöliittymän kanssa vehtaamiseen, kun eihän toisesta threadista voi toiseen kutsuja heittää.
Onnekseni pääsen suhteellisen helpolla tuon yksinkertaisen softan kanssa, riittää ihan backgroundworker, noilla sain tehtyä niin, että kun sarjaporttiin tulee dataa, niin koodi vehtaa datan kanssa ja lopulta päivittää muuttujat.
Onkohan RTMPekka koskaan kaivannut eventtiä joka laukeaisi aina muuttujan arvon päivittyessä? Voi olla, että mulla on yhä takaperoinen lähestymistapa koodilla ongelmanratkaisuun, kun usein niin mielelläni sellaista eventtiä käyttäisi.
Ikuna en ole kuullutkaan taskista C# yhteydessä, kuulostaa jälleen mielenkiintoiselta tutustumisretkeltä :D
Pitää kehuskellakkin, kun sain säädettyä erään pitkään vaivanneen ongelman pois koneesta, näyttö sekosi satunnaisesti pariksi millisekunniksi ja vain HDMI kaapelilla, prossuun integroidun näytönohjaimen muistivaraus piti vaihtaa dynaamisesta staattiseksi jolloin temppuilu loppui ja pystyin säätämään muistiasetukset tappiin, kuten ne aina kuuluu säätää.
Ajattelin että pitää koodata itse, mutta löytyi valmis softa:
http://www.passmark.com/products/apptimer.htm
Kellottelin sitten käynnistymisnopeuksia, lämmin startti:
Excel 0.35s
Word 0.32s
VS 2015 1.6s
VS 2017 1.6s
Kylmästarttia en ole vielä kerennyt kokeilemaan kuin yhdestä:
VS 2015 2.7s
Nyt tämä alkaa toimimaan kuten kuuluu, mutta yhä esimerkiksi VS 2017, kun avaa projektin design näkymään ja klikkaa tabia jossa on form1 koodi, niin kyllä se melkein saman ottaa kuin koko roskan käynnistyminen. Pieniä toki on nämä murheet, mutta kärsimättömänä tuollainen miettiminen kismittää.
Tietenkin kun se kerran on miettinyt, niin ei se sitten uudestaan mieti, mutta olen yrittänyt arpoa sitä tulisiko tuohon lisää nopeutta nopeammalla kivellä, yllättävän pieniä on nimittäin erot yhden ytimen suorituskyvyssä enkä ole varma tulisiko eroa juuri sen enempää käytännössä.
Useinhan tilanne on se, että hidasteleva tapahtuma käyttää lähinnä yhtä ydintä.
Esimerkiksi nettiselainten osalta tilanne on vähän se, että prossutuuletin ei edes herää silloin kun tahmomista esiintyy, kun taas silloin kun prossutuuletin herää, ei tahmomista oikeastaan esiinny, kun laskuteho riittää yli tarpeen.
Muistaakseni pvalilallakin oli joskus vähän jotain hidastelua nettiselaimen kanssa ja ehkä se tieto lohduttaa/masentaa, ettei se hidastelu juurikaan nopeudu vaikka kuinka nopean ja kalliin prossun saisi kuorien sisään, kun vähemmän hyödyntävät useaa ydintä.
Tuuma ei tykännyt noista tabeista, mulla saattaa olla jopa 800 tabia auki, se tahtoo vähän hidastaa selaimen käynnistymisvaiheessa, kun restore session ja treeview tab taitaa käyttää vain yhtä ydintä.
Jos tyytyy vain yhteen tabiin, niin ei taida selaimen kanssa tosiaan tulla hitausongelmia missään kohtaa, eli me muut käytämme selaimiamme väärin, voiko siitä muuta päätellä?
Mun käytöllä 8Gt rammia tahtoo välillä loppua kesken, en taida siis kuulua kastiin keskiverto-koneenkäyttäjä? Miten ihmeessä tuo 2kt Arduinossa voi mulle riittää, pitääkö siinäkin alkaa lisäämään rautaa?
