Új hozzászólás Aktív témák
-
togvau
senior tag
válasz
Szabesz #8323 üzenetére
Ahogy vártam, ugyan az a hiba, így is:
await Task.Run(() => { new InstLogic().LetsDoThis(gemail.Text, gepassword.Password, destination); }); és itt elszáll.
Mégsem hívódik meg 2x, csak 1x. Beraktam egy >= hit countos breakpointot, és nincs kettő.
Tehát ha nincs invoke, akkor a háttérlogika abban a sorában száll el, ahova kéne. Ha van mindenhol, akkor meg már a task.run-nál elszáll, méghozzá akkor, amikor a háttérlogika konstruktora lefutott (amiben speciel nincs semmi).
Tehát nem csinál semmit, és elszáll az exceptionnal a háttérlogika osztály példányosításakor. Ezt is a konstruktorban elhelyezett breakpointtal néztem. Tehát vége a konstruktornak, F10 tovább lépés, a Task.Run-nál exception.
Na ilyet még nem láttam semmilyen nyelvben.Ha ehelyett new InstLogic().LetsDoThis(gemail.Text, gepassword.Password,destination); van, működik. Csak nem frissül a gui.
-
togvau
senior tag
válasz
Szabesz #8321 üzenetére
Azt írja ki, amit bemásoltam. Semmi többet.
Van egy rakás "megoldás", csak egyik sem működik. A linkelt megoldásban például az nem, hogy a this.-nek nincs Dispatcher-e.
A legközelebbi ez volt amit kitaláltam, így pl a buttonclick-ben a Task.Run MÁSODSZORI meghívásánál hasal el:
MainWindow.thiswindow.Dispatcher.Invoke(() => { Installer.MainWindow.thiswindow.choice.Items.RemoveAt(0); });
Csak kérdés, hogy 1 klikkre, ki hívja meg másodszor a buttonclicket, és ezt:
await Task.Run(() => { new InstLogic().LetsDoThis(gemail.Text, gepassword.Password, destination); });
Szóval sok mindent próbáltam, és ha nem az invoke-nál hasal el, akkor a rejtélyes másodszori Task.Run-nál hasal el. De a fura, hogy ha csak simán new-el ugyan abban a threadben indítom, akkor csak 1x fut le a buttonclick, és csak egyszer indul.
(Pedig de egyszerű volt magát a háttérlogikát asyncesíteni... bár bonyolultabb mint Java-ban, de nem vészes. Külön-külön max 8 szálakon tölt fájlokat, ellenőriz hashkódot, kicsomagol, stb...)
-
Froclee
őstag
válasz
Szabesz #7815 üzenetére
Szerintem ne bátorítsuk itt az embereket depracated api-k használatára.
(WebClient)
HttpClient tökéletes párhuzamos request-ekre, sőt kifejezetten ajánlott static-ként használni, ha nem akarsz port exhaustion-t.togvau példája nem olyan rossz, de veszélyes a .Result, a Factory-ban indítot Task nincs await-elve (, és idegesítőek a java naming convention-ök használata
). Illetve az akadozó network sebességre nincs tippem, soha nem találkoztam még ilyen problémával.
"nem minden esetben, de az esetek nagy részében igen, jobb a java"
Mint nyelv, a legtöbb esetben sokkal butább a Java, szerintem ezt nehéz vitatni. Getter-setter pl egy agyrém. És a C# egyébként komoly tempóban halad. A Java körül az eco-system viszont marhajó, ez tény. -
togvau
senior tag
válasz
Szabesz #7812 üzenetére
private static Stream ConvertToStream(string fileUrl)
{
try
{
if (DEBUG) Console.WriteLine("ConvertToStream: "+fileUrl);
return client.GetStreamAsync(fileUrl).Result;
}
catch (Exception ex) {
if (DEBUG) Console.WriteLine("down error: " + fileUrl);
throw ex;
}
}
client pedigprivate static readonly HttpClient client=new HttpClient();
async awaitet nem akarnék használni, örülök, ha a lehető leggyorsabban rövidre zárom, és nem kell asyncesíteni még a GUI-t is
Nem olyan nagyon új a C#, csak ez a nem túl jól működő letöltés dolog az új, meg ez a nagyon fura szálkezelés. Mint írtam java-ban, ott a threadpool, oda bepakolom a szálakat, aztán annyi, vagy ha nem akarom korlátozni a számukat simán thread.Run(), és az URL.openStream() mindenhogy működik, 1 szálon, és akárhányon is, teljesen párhuzamosan, sallang nélkül. Itt nem igazán akart, itt javasolta a valaki, hogy inkább a HttpClient-et használjam.
Mint látható a kódból, egyszerre csak 1 fájlt tölt le, ami elvileg egyszerre 1 kérés. Vagy nem?
#7813: nem minden esetben, de az esetek nagy részében igen, jobb a java. De ez nem meglepő, hiszen az egyik microsoft eredetű, a másik meg nem
-
horush
addikt
válasz
Szabesz #4846 üzenetére
A line létrehozása előtt, int[] reszek tömbként, csak elfelejtettem kimásolni.
Igen, valóban szebb így egy exceptionnel, csak azért nem került bele, mert a program hozza létre / módosítja a szövegfájlt (jól), így nem nagyon kerülhet bele számon kívül más dolog.
Köszönöm a választ.
-
válasz
Szabesz #4664 üzenetére
Igen, végül én is ide jutottam, csak azért ez a hosszú válasz kicsit meglepett, meg nem is igazán dolgoztam fel hirtelen
Az egész tulajdonképpen csak egy párhuzamos porton csatlakozó led sor vezérlése miatt érdekelt, mert szeretném ciklussal, értelmesen megoldani, de ahhoz meg kellett a logaritmus, de így akkor holnap majd ki is próbálom, megy-e -
trisztan94
őstag
válasz
Szabesz #4599 üzenetére
Tényleg le van írva
Viszont elindítom a Win8SharedSDKTools.msi-t, bejön a "Please wait while windows configures your installation" képernyő, de utána nem jön be semmilyen telepítő..
Inkább visszaállítom a dátumot.
Durva, hogy a MS saját platformjára (ami jelen pillanatban nem nagyon dőzsöl az alkalmazásokban) ennyire bonyolult fejleszteni...
-
K_Gabor
tag
válasz
Szabesz #4520 üzenetére
Bocsánat ha hülyén sikerült fogalmaznom.
Szóval a lényeg az lenne,hogy minden egyes C elemhez legyen egy külön-külön A,B elemeket tároló lista,és utána ha szükségem van C6-hoz tartozó A,B elemekre akkor csak azok kerüljenek elő.
Eddig csak úgy sikerült megcsinálnom,hogy minden C elemhez listázta az összes A,B elemet. -
supi007
csendes tag
válasz
Szabesz #4393 üzenetére
Zsír. Erre gondoltam. Továbbá, ha jól gondolom, akkor a VS felteszi a .NET keretrendszert a fejlesztői gépemre és onnantól kezdve elérhetőek a .NET komponensek, továbbá meg kell tanulni a C# nyelvet magát is. Ennek a kettőnek a kombinációja tulajdonképpen a fejlesztés lényege. Jól gondolom továbbá, hogy a .NET azt teszi lehetővé, hogy minnél részletesebben férjek hozzá az operációs rendszerhez és azért írta meg az MS nekem ezt, hogy ha már lehet, akkor szabványosan nyúljak hozzá?
Üdv:
supesz -
Bobrooney
senior tag
válasz
Szabesz #3568 üzenetére
Igazándiból elég egyértelmű volt, de úgy emlékszem, hogy C# alapvetően nem enged lefoglalni 2GB-nál többet. (De szóljatok ha nem így van, mert érdekel engem is
)
Amúgy meg ha ilyen sz*rokat akar írni, mért nem C-ben írja? kb 5-10 sorban (formázva) meg is lehet oldani... -
válasz
Szabesz #3588 üzenetére
Szia!
Ez egy olyan program lenne ahol az adott hónapot kiválasztva a felhasználó megkapná az adott hónaphoz tartozó adatokat kiíratva a képernyőre, majd ez kiíródna egy fájlba is úgy, hogy a fájl legelső sora a kiválasztott hónap neve lenne.
Fájlból feltöltöttem a tömbömet, majd ezt átraktam egy másik tömbbe, de úgy, hogy már beszúrtam első elemnek a hónap nevét, tehát már így kéne az új tömbbe kerülnie, hogy
nev
ertek1
ertek2...Ehelyett meg nem töltődik fel a tömböm.
A harmadik ciklus meg az új, már jól feltöltött tömböm kiíratására szolgálna, de az nagy valószínűséggel felesleges.Remélem így már érthetőbb.
Üdv. core2
-
-
-
-
Vasinger!
nagyúr
válasz
Szabesz #1900 üzenetére
Kezdem kapizsgálni. Szóval && kéne használni || helyett? Mert ha igen akkor az a vicc, hogy a legelején így kezdtem el
A == mi a probléma? Miért nem jó?
Most, hogy kicseréltem && -re, akkor az első után kilép a ciklusból akármit is írok be kilépési feltételnek illetve tömb méretnek.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- AKCÓÓÓ!!! Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló
- Dell és HP szerver HDD caddy keretek, adapterek. Több száz darab készleten, szállítás akár másnapra
- Csere-Beszámítás! AMD Ryzen 7 9700X Processzor!
- Samsung Galaxy Tab A8 (2021) , 3/32 GB,
- Bomba ár! Dell Latitude 3590 - i5-8GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest