Hirdetés
Új hozzászólás Aktív témák
-
amargo
addikt
Próbáld ki a Rider az java-s.
Olvass utána kérlek, hogy lehet előhozni avagy mit kapcsoltál ki az exception-höz, ez egy általános tanács.
szerk:
inkább kitöröltem, a többit.[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
togvau
senior tag
válasz sztanozs #7747 üzenetére
Van bizony! Sőt az a kezeletlen exceptionöket stacktrace-el amúgy is kidobja az outputra alapon, nem kell mindent try catchelni azért is hogy kíírja, vagy nem kell pipálgatni hogy mivel kapcsolatos exceptionoket dobjon
#7748 Az tökjó, ha már megvan hogy kb hol a hiba... akkor
De ez már régi. Az új az, hogy egy Parallel.ForEach ciklus érdekesen viselkedik. Ha MaxDegreeOfParallelism = 1 akkor minden jó. Ha >1 akkor is megcsinál mindent, de soha nem hagyja el a blokkot, egyszerűen megáll, és így nincs továbblépés, se exception, semmi.
[ Szerkesztve ]
hitler, sztálin, micro usb
-
sztanozs
veterán
[link] - egy darab pipát kell dobni az elején, ha mindent szeretnél elkapni. És amúhy miért jó, ha kidumpolja az exception-t és leáll? Nem értelmesebb elkapni a kivételt úgy, hogy meg tudd nézni a tényleges kontextust, le tudd csekkolni az összes változót, példányosított osztályt, stb???
Erre a Parallel.ForEach-re dobhatnál egy példát. Lehet, hogy csak a változókezeléssel van gond.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
togvau
senior tag
válasz sztanozs #7755 üzenetére
Parallel.ForEach(alista, paraoptions, file =>
{
try
{
if (DEBUG) System.Console.WriteLine("file: " + file[0]);
string filee = downloadZip(file[0]);
UnzipFromFile(filee,destination,file[1]);
File.Delete(filee);
}
catch (Exception ex)
{
if (DEBUG) System.Console.WriteLine(file[0]+" "+file[1]+" Stack:"+ex.StackTrace);
Environment.Exit(0);
return;
}
});hitler, sztálin, micro usb
-
togvau
senior tag
Ha várok 1 percet, akkor dob egy webexception "The operation has timed out"-ot a
private static Stream ConvertToStream(string fileUrl)
{
try
{
if (DEBUG) Console.WriteLine("ConvertToStream: "+fileUrl);
return new WebClient().OpenRead(fileUrl);
}
catch (Exception ex) {
throw ex;
}
}
És így kiderül melyik fájlnál akad el, de a probléma az, hogy a dobott linket böngészőbe írva, simán letöltődik a fájl, és pont ugyanonnan hasonló fájlok (még nagyobbak) letöltése is simán megy a C# programból is. Gyak 21 fájlt kéne letöltenie, és a 19.-nél akad el. Ha nincs párhuzamosság, akkor végigmegy.[ Szerkesztve ]
hitler, sztálin, micro usb
-
sztanozs
veterán
Több oka is lehet, hogy a webclient beakad - a hibát le kell kezelni és újrapróbálni.
Másrészt a WebClient nem biztos, hogy az ideális megoldás. Itt van egy két szebb/gyorsabb: [link]JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
togvau
senior tag
válasz sztanozs #7758 üzenetére
nem lehet lekezelni, mert mindig ugyan az történik, és elég érdekes is lenne, ha a usernek percekig kéne várnia, hogy timeoutoljon. Nincs szükség gyorsabbra, működő kell, és valami magyarázat, hogy párhuzamosítás nélkül hogy működik, és párhuzamosítással miért nem.
hitler, sztálin, micro usb
-
martonx
veterán
Nem tartom jó jelnek, hogy a static metódusodban mindig újból csinálsz egy webclient-et. Ez lehet, hogy egy szálon nem okoz gondot, több szálon viszont simán lehet, hogy összeakad valami valahol..
A helyedben a webclient-et egy példányban hoznám létre, és azt használnám újra és újra.Másrészt webről fileok letöltésénél a szűk keresztmetszet úgyis a sávszélesség, nem pedig a processzor kihasználtság, szóval szerintem ez az a tipikus helyzet, ahol felesleges párhuzamosítással felesleges komplexitást hozol be a rendszerbe, nulla hozzáadott értékkel.
Majd amikor a fileokat parsolni akarod, vagy mittudomén, ott lesz értelme a párhuzamosításnak, de itt most éppen nincs értelme.Én kérek elnézést!
-
sztanozs
veterán
Bele kell piszkálni a timeoutba, és máris nem kell várni 100 mp-et...
Timeout bármilyen (web)helyzetben előfordulhat, le kell rendesen kezelni.JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
togvau
senior tag
válasz martonx #7760 üzenetére
Ha nem csinálok mindig újat, csak 1 darab van, akkor: "WebClient does not support concurrent I/O operations"
Másrészt ott nem csak letöltés van mint látható, hanem kicsomagolás, lemezre írás, fájlokban pár byte cseréje. Ezért van párhuzamosítva, de a letöltésnek is néha jót tesz, gondolj csak a több szálon letöltést tudó letöltőprogramokra.
[ Szerkesztve ]
hitler, sztálin, micro usb
-
sztanozs
veterán
Szerintem felesleges ezen vitázni.
Egyrészt a WebClient helyett ajánlott valami mást használni (túl nehézsúlyú, másrészt elég elavult), másrészt az esetleg előforduló timeoutot (mint ahogy egy többszálú letöltőprogram is) kezelni kell.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
togvau
senior tag
válasz martonx #7764 üzenetére
És mit csináljak ezekkel a taskokkal? Hogy lehet a Task<Stream>-et sima streammé vagy bármilyen más normális változóvá alakítani, úgy hogy normális visszatérési értéke legyen a függvénynek, és csak async taskok a legfelsőbb szintig? (azért fura, hogy java-ban egy szimpla url.openStream()-al el volt intézve az egész, még párhuzamosítva is).
hitler, sztálin, micro usb
-
togvau
senior tag
válasz Froclee #7766 üzenetére
wpf
meló, egy java-ban írt telepítőt akarok átírni c#-ra, mivel az m$ sikeres a java FUD-ban.
Letölt aes128+gzipelt adatfájlt, néz stimmelő felhasználónevet jelszót benne (amit wpf felületen kell megadni), és azonosítókkal tér vissza, majd az adatfájlban található url-ről hash listát letölt, és csekkolja a kijelölt mappában hogy stimmelnek-e a listában lévők a lemezen lévőkkel, ha nem akkor bekerülnek a fájlok a letöltendő listába, és a listán lévő fájlokat letölti (1 fájl/zip szintén kódolva), kicsomagolja, eközben vízjelet helyez el benne.
És ennyi.
Java-ban viszonylag sima ügy volt. Itt is végül is működik, csak a több szálú letöltés/kicsomagolás nem működik rendesen. És ha asyncet használok egy metódusban, akkor az azt meghívónak is asyncnak kell lennie, és az azt meghívónak is, és így tovább...[ Szerkesztve ]
hitler, sztálin, micro usb
-
-
togvau
senior tag
-
Keem1
veterán
Srácok, ötletre lenne szükségem.
Adott egy desktop win app, ahol futásidőben x db képet kéne megjelenítenem, a képek száma nem limitált, 0 és végtelen között bármi lehet.A háttere a dolognak:
A program egy webes json adatot kap (System.Net.WebClient), amiben van egy tömb pár url címmel (thumbnail, normál) és caption-nel.
A cél, hogy a kapott thumbnaileket megjelenítsem, ráírva a caption-t és kattintásra böngészőben megnyíljon (normál kép).A json letöltése, feldolgozása pipa, lesz egy struct tömb végeredményben (caption és az url-ek). A kattintásra böngészőnyitás szintén megoldott.
A thumbnaileket kéne valahogy megjeleníteni, de úgy, hogy tudjam, hogy melyik melyik.Én így gondoltam: felteszek egy panelt, és valahogy foreach-csel rádobálom a pictureboxokat. Ez így működhet? Jelenleg tervezési fázis van, még egy karakternyi forráskódot se gépeltem be. Ha valakinek van jobb ötlete, ne tartsa vissza. Ha maradna a fenti, hogy tudom megkülönböztetni, hogy melyik picturebox melyik elem a struct tömbben? Fontos lenne, mert az adatokat (kattintást is) SQLite adatbázisban tárolnám.
[ Szerkesztve ]
-
togvau
senior tag
válasz Froclee #7773 üzenetére
kb 3 viszont mert a C#-nál nem lehet normális változót visszahozni több szálon, ezért pontosan ugyanarra a feladatra 2 csak kicsiben különböző függvény kell? (egy normális streamet visszaadó, és egy kötelezően task<streamet> visszaadó a párhuzamosított részhez)
A GUI függvényeiig elvitt asyncolgatásnál nem fogja azt is kérni, hogy a gui osztály is legyen async, meg a wpf-et is írjam át asynccé?[ Szerkesztve ]
hitler, sztálin, micro usb
-
martonx
veterán
Pont ez a lényeg. Ha valami async, akkor az adjon vissza Task-ot. Viszont bármikor odabiggyeszteheted a .Result-ot az async metódusod meghívásának a végére, és máris normál változót fogsz visszakapni, mert látom ez a mániád.
Azaz pl. MyMethodAsync()-et kétféleképpen tudod használni:
1. szép async módon:
var a = await MyMethodAsync();2. csúnyán direktben syncesítve vállalva az esetleg háttérbeli async problémákat, ha egyébként minden más metódusod async fut:
var a = MyMethodAsync().Result;Azaz ha mindenképpen "szép" változó típust akarsz visszakapni a .Result-al bárhol rövidre tudod zárni az asyncosítást.
Én kérek elnézést!
-
togvau
senior tag
Na kipróbáltam a Httpclientesítést .Result-os rövidre zárással. Ugyan az a jelenség mint a webclientnél... csak most már "System.Net.WebException: The request was aborted: The request was canceled."
hitler, sztálin, micro usb
-
togvau
senior tag
válasz sztanozs #7779 üzenetére
Ez sem nyert. Az nyert félig-meddig, hogy szétválasztottam a dolgokat, és a letöltés a soros terv szerint megy Míg a kicsomagolás, vízjelezés parallel foreachben. Most megpróbálom valami taskban kicsomagolni, hogy minden egyes fáljt amit letöltött rögtön kezdjen kicsomagolni, ne csak akkor amikor már minden letöltődött.
De egyszerű volt ez java-ban, hogy egyszerűen csak bedobtam a threadpoolba...hitler, sztálin, micro usb
-
veterán
Sziasztok!
Egy ilyen képzésen veszek most részt, C, embedded C, C++, Perl előképzettséggel, érdeklődnék, mi lenne a dolog menete utána?
Arra gondoltam, bedolgoznék valahova, akár több helyre otthonról, eleinte pusztán tanulási célból, aztán szép fokozatosan előre. A főállásom sem rossz, csak jó lenne több lábon állni, de hosszú távon semmi sem elképzelhetetlen.
Az a baj magamtól nem tudok kitalálni feladatokat gyakorlásképp, ezért lenne jó egy olyan cég, ahol kapnék valós feladatokat. Van ilyen?https://tinyurl.com/rasoapro
-
Ivy.4.Ever
őstag
válasz rasotamas #7781 üzenetére
Szoktak indítani cégek gyorstalpalókat diákoknak de nem hajtanak el tapasztaltakat sem. Mint például ez volt (és várhatóan lesz még):
https://www.inf.unideb.hu/hu/hirek/dyntell-gyakornoki-programVagy ami kifejezetten neked való lenne:
https://www.epam.com/careers/hungary/epam-academyVagy a Virgo Systems is megér egy misét de ők úgy tudom nem alkalmaznak .Net technológiát.
-
veterán
válasz Ivy.4.Ever #7782 üzenetére
A debreceni messze van, 8x3 óra nem valami acélos ezzel szemben amire én most járok és belinkeltem az milyen?
Az epam meg úgy néz ki, amire 18 évesen munka meg egyetem helyett ülnék be, hangsúlyozom, van állásom, az abból befolyó pénz pedig nélkülözhetetlen. Bár a pontos tematikát, óraszámot nem látom, lehet tévedek.https://tinyurl.com/rasoapro
-
Ivy.4.Ever
őstag
válasz rasotamas #7783 üzenetére
Nekem úgy tűnik hogy bármelyik kezdő könyvből megtanulod ugyanezeket. Az internet pedig tele van feladatokkal ha csak ez a baj. Epamnál is este tartanak órákat ha erre gondolsz.
Ha a falig akarsz elmenni: https://www.training360.com/microsoft/developer/programming-in-c-sharp-(20483)
Régi a leírás de azt ígéri hogy a hivatalos vizsgára készít fel. -
bandi0000
nagyúr
milyen módon tudom azt elérni, hogy ne csináljon semmit a program?
mármint, van egy void függvényem, és figyeli a gomb leütéseket, de nekem csak az escape-re kellene hogy csináljon valamit, a többire ne, nyilván ez megoldható lenne egy if, hogy ha escepe akkor csinálja, különben csináljon mást, csak ez a más a semmi kéne hogy legyen, erre tudtok valami jó ötletet?
Én mg egy olyan gondom is lenne, hogy ugyan ebbe a fv-ben, kiíratásnál használom a háttér/betű színezést, és ahogy escapet nyomok, vissza tér az előző menübe, ahol szintén írok ki, de valahogy ez a színezés megmarad, és teljesen elrontja az első menüt, tele raktam már console.Clear()-el, de nem segített
kódot ha szükséges tudok bemásolni, de elég hosszú
[ Szerkesztve ]
Xbox One: bandymnc
-
Keem1
veterán
válasz bandi0000 #7785 üzenetére
Ezt nem értem igazán
"if, hogy ha escepe akkor csinálja, különben csináljon mást, csak ez a más a semmi kéne hogy legyen"
Mondjuk elhagyod az else ágat?Pl (nem ellenőrizve):
if (Console.ReadKey(true).Key == ConsoleKey.Escape)
Ha félreértettem a célt, akkor elnézést, nem kotnyeleskedni akartam, csak így elsőre nem áll össze a kérdésed.
[ Szerkesztve ]
-
bandi0000
nagyúr
semmi gond, örülök ha segítenek
lényeg az, hogy úgy néz ki a program hogy:
do
itt csinálja a dolgokat
és van egyfor( itt van a kiíratás meg a színezés )
while(amíg nem erscape-et nyomok)
ez az egész do while fügvény, egy switch case szerkezetbe van, tehát ha a do-while ból kilép, akkor megint kiírja a fő menüt és stb
arra rá jöttem ,hogy ha a színezve kiíratom, aztán a kiíratás után vissza állítom a fekete háttért, és a fehér színt akkor jó, de elég hülyén néz ki hogy 2 sor színezés kiíratás és megint 2 sor színezés van, és minden egyes színezett kiíratásnál ennek így kéne kinézetni
bár lehet később megpróbálom beszúrni a kódot, de az egész kód 200 sor kb
Xbox One: bandymnc
-
bandi0000
nagyúr
-
lord.lakli
őstag
válasz bandi0000 #7789 üzenetére
OpTime-ba miért van do-while-ban minden? Látom nagyon szereted a do-while-t
Ha nem ESC-et nyom, akkor return, ha ESC, akkor meg a do-while lép ki.
Ha ESC-re fejezze be, akkor felesleges az egész do-while, helyette a kiírás után fapadosan ennyi kell:
while (Console.ReadKey(true).Key != ConsoleKey.Escape) { } -
bandi0000
nagyúr
válasz lord.lakli #7790 üzenetére
mondjuk ez itt tényleg felesleges, még nem teljesen tiszta nekem sem, mi hogy fog működni
de igaz, viszont másik függvénynél pont hogy do-while kell majd, mert folyamatosan fut, és csinál dolgokat,választástól függően, amíg nem lesz nyomva egy escXbox One: bandymnc
-
togvau
senior tag
Van ez a konstruktor kód:
public TxtLogger(string file) : base(new FileStream(file, FileMode.Append))
{
this.file = file;
}És itt az kéne, hogy meghívott paramétert manipuláljam (bemeneti fájlnevet kicsit megváltoztatni, ÉS ez után legyen vele meghívva az ősosztály konstruktora. Ilyet hogy lehet?
hitler, sztálin, micro usb
-
bandi0000
nagyúr
Lehet olyat csinálni, hogy változó számú paramétert adna vissza ugyan az a metódus?
gondolok itt arra, hogy egy csomó sql lekérdezésem van minden fv ben, de persze nem ugyan az, és ugyan annyi, ezért olyasmire gondoltam, hogy 1 fv be kigyűjtöm a különbözőket, és valami feltétel szerint minden meghívásnál kiválasztja hogy mit és mennyit adjon vissza
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz Froclee #7795 üzenetére
köszi de nem pont ezekre gondoltam, valszeg nem létezik pont olyan és úgy ahogy akarom, csak el,ég hosszú a kód és próbálom rövidíteni
martonx: gondoltam, hogy hülyeséget kérdezek ,de más lehetőség igazából nem játszik erre, hogy megoldjam, vagyis ami igen annak nincs értelme megcsinálni, azért hogy pár sorral rövidebb legyen
[ Szerkesztve ]
Xbox One: bandymnc
-
martonx
veterán
válasz bandi0000 #7797 üzenetére
Az általában nem baj, ha egy kód nagy. Az a baj, ha nincs jól szervezve, nem olvasható, nem átlátható. Szóval neked most nem azon kellene törnöd a fejed, hogy szar megoldásokkal hogy nyerjek pár sort, hanem hogy szervezd normális olvasható, átlátható formába. Pl. Bevezetni repository patternt, funkciókat más classokba kiszervezni stb...
Én kérek elnézést!
Ú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!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- eBay-es kütyük kis pénzért
- Ezek a OnePlus 12 és 12R európai árai
- Vezeték nélküli fejhallgatók
- Milyen RAM-ot vegyek?
- Milyen alaplapot vegyek?
- Milyen SSD-t vegyek?
- Milyen monitort vegyek?
- 180 Hz-es VA panellel jön az MSI 34 hüvelykes kijelzője
- PlayStation 5 Pro teszt
- További aktív témák...
- XFX Radeon Speedster SWFT 319 RX 6800 - BONTATLAN - ALZA GARANCIA
- Bomba ár! Lenovo X1 Yoga 3rd - i5-8GEN I 8GB I 256GB SSD I 14" 2K Touch I W11 I CAM I Garancia!
- Bomba ár! Lenovo X1 Carbon G3: i7-G5 I 8GB I 256GB SSD I 14" QHD I HDMI I Cam I W10 I Gari!
- Bomba ár! Lenovo ThinkPad T450s - i5-5GEN I 8GB I 128GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! Lenovo ThinkPad T14s - i5-10G I 8GB I 256GB SSD I 14" FHD Touch I Cam I W11 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: HC Pointer Kft.
Város: Pécs