Új hozzászólás Aktív témák
-
Alu
senior tag
válasz
quailstorm
#9923
üzenetére
& joysefke
Köszönöm a válaszokat!
Async Taskkal próbálkoztam, de pingelés során ugyan úgy megfagyasztotta a UI -t. Backgroundworkerrel még csak ma kezdtem el ismerkedni, készítettem hozzá egy új projektet teszteléshez és eddig egész jónak tűnik.
Abban tudnátok segíteni, hogy a DoWork függvényből hogyan tudom több változó értékét átvinni a ProgressChanged függvénybe? Találtam egy megoldást, ami az e.Result -ba teszi bele egy osztálynak az elemeit, majd a Completed függvényben veszi ki az e.Result -ból. A problémám ezzel, hogy nekem a ProgressChanged fv. -ben már kellenének ezek az értékek, de itt az e.Result -ra hibát kapok.Az mennyire barkács megoldás, ha létrehozok egy struktúrát és a struktúra elemein dolgozok a DoWork fv. -ben, majd amikor meghívásra kerül a ProgressChanged, akkor felhasználom a struktúra változóinak értékeit?
Illetve még egy olyan kérdésem lenne, hogy létrehoztam egy másik formot, ahol a csatlakozás beállításait szeretném módosítani. A két form között milyen megoldással tudom kicserélni a változók értékeit? Pl. Ha a Settings_Form -on beírok egy új IP címet, az hatással legyen a MainForm osztályban lévő IPAddr változóra is.
-
Alu
senior tag
Sziasztok!
Készítettem egy Windows Forms App -ot, amivel egy ubuntu alapokon lévő "házi szerver pc" -t szeretnék néhány egyszerű funkcióval vezérelni/státuszt lekérdezni. Ezek a következők lennének:
- Szerver pc pingelése
- Wake on lan küldése a szerver pc -nek (mac alapján)
- Ssh -n keresztül bejelentkezés, illetve parancs küldés és fogadás (egyenlőre rsync és shutdown parancsok lennének)Addig eljutottam, hogy létrehoztam egy Win Form App -ot, elkészítettem a felhasználói felületet és megírtam az összes függvényt, ami a fenti funkciókhoz szükségesek. A funkciókat az UI -on lévő gombokkal lehet elindítani és a függvények logolják egy multiline text boxba, hogy milyen szekvenciák futottak le, vagy éppen milyen válasz jött vissza ssh -n. A program egész jól működik azzal a szépséghibával, hogy amíg a háttérben futnak a függvények, addig az UI teljesen megfagy. Ez nem is lenne akkora probléma, de van, hogy az rsync parancs hosszú percekig, akár egy óráig fut, mire megjön a report, hogy mit sikerült szinkronizálnia. Ennek orvoslására ki szeretném rendezni a függvényeket külön szálba, hogy legalább az asztalra le lehessen tenni az UI -t és ne "Nem válaszol" státuszba kerüljön, amikor véletlenül rákattintok. A kiszervezésnél addig jutottam, hogy létrehozom a párhuzamos szálat, de amint abból a szálból szeretnék egy a fő formon lévő komponensre (pl. label, button, stb.) hivatkozni vagy annak értéket beállítani, egyből "Szálak közötti művelet érvénytelen" hibát kapok. Ezt egy logolást végző függvénynél már sikerült feloldanom Invoke használatával, de egy buttonEnable beállításnál újra előjött.
A kérdésem az lenne, hogy ezt az Invoke -os megoldást minden egyes komponensnél el kell játszani vagy van erre valami egyszerűbb út, amire még nem sikerült rátalálnom?
Eddig jellemzően mikrokontrollereket programoztam C -ben, a Win Forms, C# és oop teljesen újak számomra, de nagy a motiváció.
Minden segítséget előre is köszönök!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Garanciális Deepcool PN850-M Black 850W 80 PLUS Gold
- Lenovo ThinkPad X1 Carbon Gen 10 i5-1245U / 16GB RAM / 512GB NVMe SSD / 1920 1200 / EU billentyűzet
- Lenovo ThinkPad X1 Carbon Gen 7 i5-8365U / 8GB RAM / 256GB NVMe SSD / 14" FHD / 12 hónap garancia
- Lenovo ThinkPad X1 Carbon Gen 9 i5-1145G7 / 16GB RAM / 256GB NVMe SSD / 14" WUXGA / 12 hónap garanci
- Gtx 1080/ Intel I7 8700K/ 16GB Ram/ 256GB M2 SSD/ 1TB HDD/ Win11
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4653
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- DAHUA 16GB DDR4 3200 MHz laptop RAM
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- 229 - Lenovo LOQ (15IRX10) - Intel Core i7-13700HX, RTX 5060 (ELKELT)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
