Hirdetés
-
Digitális detox a Nokiától
ma Három új, 4G-s készülék közül lehet választani, ha valaki, elérhetőségre, de digitális disztrakció nélküli időtöltésre vágyik.
-
Mozgásban a 33 Immortals
gp A legújabb bemutatóban egy boss harcot láthatunk a készülő roguelike játékból.
-
Már a Sparkle is jegyezhet fehérbe öltöztetett videokártyákat
ph A gyártó egy 8 és egy 16 GB-os, inteles modellel jelentkezett, amiket ránézésre nem igazán tudnánk megkülönböztetni egymástól.
Új hozzászólás Aktív témák
-
haromegesz14
aktív tag
Visszatérési érték ként egy teljes tömböt vissza lehet adni? Ha igen, mi a szintaxisa?
10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
Alexios
veterán
válasz haromegesz14 #5301 üzenetére
return tombneve;
-
Karma
félisten
-
haromegesz14
aktív tag
Int típusú tömb egyik elemének értékéhez szeretnék hozzáfűzni stringet. Hogyan lehet megoldani típuskonverzió nélkül? Vagy a kiválasztott elemet konvertáljam stringé és pakoljam egy másik string típusú tömbe, és egyszerűen utána csatolom a kívánt stringet?
10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
Goose-T
veterán
válasz haromegesz14 #5305 üzenetére
Intet stringgé konvertálod, hozzáfűzöd a meglévő stringet, aztán visszakonvertálod az eredményt intté, és a tömb megfelelő helyére teszed
Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
moseras
tag
Sziasztok!
MySQL-t használok Entity FrameWork 6-al. Működik, kivétel az async/await lehetőség, amit az EF6 elvileg tud.
Kód:
public void I2(List<data> dataList)
{
Debug.Print("I2 előtt");
InsertAsync(dataList);
Debug.Print("I2 után");
}
public async void InsertAsync(List<data> dataList)
{
using (var ctx = new adatgyujtesEntities())
{
ctx.Configuration.AutoDetectChangesEnabled = false;
ctx.Configuration.ValidateOnSaveEnabled = false;
foreach (var item in dataList)
{
ctx.data.Add(item);
}
Debug.Print("await előtt");
await ctx.SaveChangesAsync();
//await Task.Delay(4000);
Debug.Print("await után");
}
}Ha az I2-t meghívom, akkor ezt kapom:
I2 előtt
await előtt
await után
I2 utánHa az await ctx.SaveChangesAsync(); sort kikommentezem, és helyette beteszem az await Task.Delay(4000);-t, akkor pedig ezt:
I2 előtt
await előtt
I2 után
await utánTehát mint ha a SaveChangesAsync szinkron működne ? Vagy valamit félreértek ?
És még valami: a UI is akad rendesen, a SaveChangesAsync közben sem mozgatni, sem méretezni nem lehet az ablakot, de a Task.Delay közben működik a mozgatás/méretezés.
Köszi!
Imi.
[ Szerkesztve ]
-
martonx
veterán
válasz moseras #5307 üzenetére
Nem feltétlenül hiba ez. Az await ctx.SaveChangesAsync(); és az await Task.Delay(4000) simán eltérhet viselkedésben ennyire egymástól, az async await közel sem csak annyit csinál, hogy egy Task-ba burkolva hívja meg a kért függvényt.
Illetve az await pont azt mondja meg a kódnak, hogy várja be az adott aszinkron futó kódrésznek az eredményét, és emiatt működjön úgy mintha az egy szinkron hívás lett volna.
Én kérek elnézést!
-
moseras
tag
válasz martonx #5308 üzenetére
Szia!
Úgy tudom, hogy mivel az InsertAsync async void-ként van megadva, ezért annak a hívóhoz vissza kell(ene) térnie a benne lévő await hatására (és persze az await indít egy új taszkot, aminek végeztével az await alatt folytatódik). Érdekesnek találnám, ha ez egyszer így, egyszer úgy működne. Arra is gondoltam, hogy esetleg a MySQL EF6 megvalósítása nem kerek valahol. Mivel a UI szál is teljesen lefagy a SaveChangeAsync alatt, ezért nem tudok másra gondolni, valami miatt szinkron módon ugyanabban a UI szálban fut.
Imi.
-
ubid
őstag
Sziasztok!
Lehet egy 50%-ban off a kérdés:
Csináltam egy WCF service-t c#-ban.
Ennek a referenciáját fel tudom venni c++-os projektbe ? és tudom használni valahogy ?-.-
-
j0k3r!
senior tag
Helló!
Hogyan épül fel az alkalmazásod? Megmondom őszintén, hogy elsőre valami architektúrális bakinak tűnik számomra ez a megközelítés. Azt remélem tudod, hogy attól hogy beimportálsz egy DLL-t, még mindig szükséged lesz .NET frameworkre a futtatáshoz. Én inkább azon a vonalon indulnék el, hogy keresnék valami c++-os SOAP libraryt. Sokat segítene, ha mondanál pár szót az alkalmazásról.
some men just wanna watch the world burn...
-
ubid
őstag
hüm, van egy nagy server amin fut a WCF service ( ez lesz az a gép, amely begyűjti az adatokat, és feldolgozza) vannak kis beagle bone gépeink ( n darab) amelyekre usb-vel csatlakozik egy eszköz, amely adatokat tud küldeni a kis beagle bone-ra, amely pedig WCF-en kellene hogy továbbítsa a SERVERNEK.
körülbelül ennyi a koncepció.
a WCF gyors, ezért szeretnénk ezt választani. ( másodpercenként akár 60 adat is érkezhet / beagle )
.NET alatt meg van írva, van hozzá kliens is, és pont ez a sebesség ami kellene nekünk, viszont a kliensnek c++ osnak kellene lennie, ugyanis a beagle-ken csak linux fut, amire ugye csak c++ megy ( esetleg mono, ami meg igen butácska )[ Szerkesztve ]
-.-
-
Goose-T
veterán
How to create a JSON WCF RESTful Service in 60 seconds
You can thank me later.Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar
-
martonx
veterán
-
Karma
félisten
-
martonx
veterán
Igen, sokfelé el lehet indulni C++-al is, csak amennyire felületesen ránéztem, akár csak egy gSOAP-ot beindítani (majd buzgón reménykedni, hogy kompatilis lesz a WCF WSDL-jével), egy nagyságrenddel nagyobb melónak tűnt, mint akár csak sima C-ben elküldeni egy http hívást a megfelelő json-nal.
Ha meg már C#-al dobták össze a WCF-et és C++-ból kellene használni, akkor jó eséllyel lehet, hogy kevesebb erőforrás a WCF-et átírni ASP.NET Web API-ra, mint C++-ból elkezdeni SOAP-ozni.De lehet, hogy csak én utálom túlságosan a SOAP-ot (mindig csak szívni tudtam vele, kivéve a C# - C# felállást, de ez most nem az). ubid hsz-éből meg az jött le, hogy azért lett WCF, mert csak (a másodpercenkénti 60 request feldolgozását nem értékelem érvnek, a szűk keresztmetszet úgyis az adatbázis lesz), meg eddig C# - C# esetben csak bedobott egy referenciát egy varázslóba, és már használta is. Na, ez most nem így lesz.
Én kérek elnézést!
-
ubid
őstag
válasz martonx #5314 üzenetére
Kösz az ötleteket mindenkitől !
A WebApi-val annyi bajom van, hogy egyrészt nagyon alap szinten használtam csak, bár nyilván bele lehet tanulni. Viszont ami nagyobb gond számomra, hogy nem látom azt a "hogyant", hogy hogy lehet azt megoldani, hogy a külső eszközről folyamatosan áramló adatokat tulajdonképpen "begyűjtse" vagy broadcast-olja szét. vagy bármi.
Mert a WebApi tudtommal arra jó, hogy viszonylag statikus dolgokat "megkérdezz" tőle, ő meg odaadja.
Nekem viszont pont nem ez kell, hanem az, hogy a készülékről érkező adatokat kiküldje, autómatikusan.A WCF-el úgy sikerült megoldani mint ha egy chat alkalmazás lenne, tehát egy "eseményen" keresztül broadcastolom mindenhová az adott adatot , ahová csak kell.
Nem tudom, hogy ezt most értelmesen magyaráztam-e el, de remélemHa esetleg tudtok tanácsot adni, hogy ebben a koncepcióban a webapi hogy működhetne, akkor kérem jelezzétek.
A lényeg, hogy NEM kérdezgethetem folyamatosan a WebApi-t , hogy "héé kaptál új adatot?", hanem annak mondjuk egy eseményen keresztül folyamatosan jönnie kell és pont.
-.-
-
martonx
veterán
-
-
martonx
veterán
Igen, az elején úgy indította ubid, hogy ez kell neki.
Aztán most leírva a végső megvalósítást, abból nekem úgy tűnik, hogy minek ide duplex működés?
És ha mégis, akkor SignalR + web API párossal szvsz egyszerűbben együtt tud működni egy C++ kliens, mint WSDL-ekkel nyűglődni.
Mivel a konkrét problémát még mindig csak több vázlatos hsz-ből ismerjük, én csak találgatok. A linuxos C++ vonal miatt az biztos, hogy kerülném a WCF-et, mint ördög a tömjén füstöt.Én kérek elnézést!
-
amargo
addikt
válasz martonx #5324 üzenetére
Lehet én olvasom ki rosszul, de eddig úgy értettem, hogy van egy service-e, amibe nyomja be valamilyen c++ kódból az adatokat, majd a service broadcast-ja valamilyen klienseknek.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
ubid
őstag
Jelenleg így van, ahogy amargo kolléga írta. (nyilván a kliens jelenleg c#, azért könnyű a WCF-el szórakozni)
Nyitott vagyok más megoldásokra is, nem feltétlenül ragaszkodom én a WCF-hez, egy biztos SignalR kizárva, mert NEM böngészőbe kell, hogy fusson.
Ha a C++ nem szereti a WCF-et, akkor lesz más, akár WebApi, akár más. erről még döntés nem született.
Szerintem értelmesen leírtam, ennél jobban nem tudom körülírni.
Van egy külső eszközöm, ennek csatlakoznia kell USB-n keresztül egy C++-t futtató beagle boardhoz. A kis beaglenek csak annyi a feladata, hogy az összes adatot tovább küldje egy serverre (folyamatosan, autómatikusan küld, amikor egy esemény elsül, ezt az eseményt pedig az ESZKÖZ süti el ami USB-n kapcsolódik, akár másodperc / 60 szor is ) , amin viszont már c# kód fog futni. A server feldolgozza a megfelelő módszerrel és ennyi.
Adatbázis egyáltalán nincs a dologba.A leglényegesebb dolog az az, hogy marha gyorsnak kell lennie. (a c++-tól a serverig eljuttató résznek)
[ Szerkesztve ]
-.-
-
martonx
veterán
Kettő dolog.
1. megint csak arról írtál, hogy eljutnak az adatok a szerverig, és ennek értelmében nem kell duplex kommunikációs, se signalr. Ez így igaz? A szerveren megállnak az adatok, és mindenki happy, vagy a server elkezdi a bejött adatokat "szórni" valamerre?
2. "egy biztos SignalR kizárva, mert NEM böngészőbe kell, hogy fusson" - félre ne érts, nekem teljesen mindegy mivel oldjátok meg, csak nem szeretném, hogy butaság hangozzon el a topikban, és esetleg ez másokat félrevezessen. A SignalR abszolút nincs böngészőhöz kötve! Mondhatni semmi köze hozzá, maximum annyi, hogy mára a legjellemzőbb, hogy minden böngészőben fut, ergo ott használják leggyakrabban. Illetve http web socket-tel kommunikál, de ez ne tévesszen meg.
Én kérek elnézést!
-
moseras
tag
válasz moseras #5307 üzenetére
Sziasztok!
Akit esetleg érdekel, MySQL és EF6 async/await probléma átmeneti megoldása:
E helyett
await ctx.SaveChangesAsync();
Ezt használva
await Task.Factory.StartNew(() =>
{
ctx.SaveChanges();
});külön szálon indul el, és a UI is reszponzív marad. Hogy miért van így, azt továbbra sem értem, de a lényeg, hogy így működik.
Imi.
[ Szerkesztve ]
-
ubid
őstag
válasz martonx #5328 üzenetére
Értem, signal r -el nem foglalkoztam még, ezért ezt nem is tudtam. Bocs a félre infóért.
Igen jogos, az is lényeges, hogy a server ez után tovább fogja tolni egy másik kliensnek az adatot. Ez valóban lemaradt. Sorry.
Tehát a teljes kép mégegyszer: usbs külső eszköz, begale boardra dugva, perc / 60 adat egy eseményen keresztül érkezik, kis c++ os kód, amely ezt továbbítja valahogyan a szerverre, lényeg h gyors legyen baromira. A server feldolgozza, ha uugy tetszik, átdolgozza az adatot, összegyúrja ezeket, majd egy másik kliens felé ezt ismét továbbítja.
Így teljes a kép. Sorry mégegyszer.-.-
-
martonx
veterán
Ez esetben sok lehetőséged van. Van egyszer a beagle bord - szerver közötti adatút. És van a szerver - kliens közötti adatút.
Ezeket akár külön is bonthatod, hogy mondjuk a beagle Web API-n keresztül küldi az infót (C++-ból ez tűnik a legkézenfekvőbbnek), majd a szerver duplex WCF-en keresztül továbblöki a kliens felé (ez a része ha jól sejtem kész is van). A szerveren meg a Web API fogja meghívni a WCF-et (itt már C#-on belül vagyunk, ez egy triviális művelet).
Vagy mindent egyben kezelsz, és a szerveren egy szál Web API - SignalR kombó intézi az egészet akár egy szál konzol alkalmazásból / windows service-ből futtatva.
Az utóbbi megoldás sokkal szebb, az előbbi megoldáshoz meg sok komponensed már készen van, neked kell dönteni. És persze még biztos van kismillió megoldási lehetőség, én ez a kettő között ingadoznék.
Én kérek elnézést!
-
ubid
őstag
Még egy újabb kérdés
Valami durvább matematikai libraryt tud valaki ? Parciális deriválás, integrálás, határérték számítás (lim)
Ilyesmikhez kellene valami megbízható nuget, ha van.
Köszi.
-.-
-
zsambek
aktív tag
Sziasztok,
Érettségire készülök, és az alábbi if tömkeleget szeretném kicsit csökkenteni. Hogyan tehetem meg?
(6. feladat)
http://pastebin.com/sBzpzVXB
Nagyon szépen köszönöm a segítséget,
zsambek`[ Szerkesztve ]
-
trisztan94
őstag
válasz zsambek #5336 üzenetére
Switch?
Erre pedig:
if (beolvrendszam[0] == ellenorzesek[i].rendszam.Substring(0, 1) || beolvrendszam[0] == "?")
{
if (beolvrendszam[1] == ellenorzesek[i].rendszam.Substring(1, 1) || beolvrendszam[1] == "?")
{
if (beolvrendszam[2] == ellenorzesek[i].rendszam.Substring(2, 1) || beolvrendszam[2] == "?")
{
if (beolvrendszam[3] == ellenorzesek[i].rendszam.Substring(3, 1) || beolvrendszam[3] == "?")
{
if (beolvrendszam[4] == ellenorzesek[i].rendszam.Substring(4, 1) || beolvrendszam[4] == "?")
{
if (beolvrendszam[5] == ellenorzesek[i].rendszam.Substring(5, 1) || beolvrendszam[5] == "?")
{
if (beolvrendszam[6] == ellenorzesek[i].rendszam.Substring(6, 1) || beolvrendszam[6] == "?")
{
Console.WriteLine("6. Feladat: {0}", ellenorzesek[i].rendszam);
}
}
}
}
}
}
}Lehet lehagytam pár csukó kapcsos zárójelet..
Nem lenne elég egyetlen egy ilyen?
if (beolvrendszam[i] == ellenorzesek[i].rendszam.Substring(i, 1) || beolvrendszam[i] == "?")
https://heureka-kreativ.hu
-
Karma
félisten
válasz zsambek #5337 üzenetére
Jézus ereje, miért csináltál hételemű string tömböt a rendszámból? Jó az egy darab stringnek is, illetve ez a sok rendszam.Substring(X, 1) is teljesen felesleges, mert ugyanezt tisztábban megkapod ha azt írod, hogy rendszam[X].
A switch ezen a helyen semmire se jó, de ezt az if-piramist azért ki lehet lapítani egy for ciklusba, ami az i-edik karaktereket összehasonlítja, és addig megy, amíg nem talál eltérést. Ha végigért, akkor meg kiír.
Van egy félsoros megoldás is regexekkel, de azt nem mondom el, mert egy erősen túlmutató területre vezet.
“All nothings are not equal.”
-
Karma
félisten
válasz zsambek #5340 üzenetére
Nem. Ehhez a feladathoz nincs szükség switchre, nem tudom trisztan94 mire gondolhatott vele.
Sokkal inkább van szükség egy klasszikus ellentmondás keresésre.
Például így:
#region MEGY 6. Feladat
string[] beolvrendszam = new string[7];
Console.WriteLine("6. Feladat: Kérem, vigye be a rendszámot:");
string beolvsima = Console.ReadLine();
foreach (var ell in ellenorzesek)
{
bool egyezik = true;
for (int i = 0; i < 7 && egyezik; i++)
{
if (beolvsima[i] != ell.rendszam[i] && beolvsima[i] != '?')
{
egyezik = false;
}
}
if (egyezik)
{
Console.WriteLine("6. Feladat: {0}", ell.rendszam);
}
}
#endregionMiközben írtad a sok egymásba ágyazott if-et, érezned kellett volna ahogy szárad le a kezed. Ha nem, legközelebb képzeld azt.
Egyébként a j változódat igazán átnevezhetnéd valami értelmesebbre. Direkt ki is hagytam a képből.
Másrészt vedd észre, hogy aposztrófok közé tettem a kérdőjelet: így nem kell substringgel és stringtömbbel szórakozni, a string ugyanis felfogható karakterek tömbjének is.
[ Szerkesztve ]
“All nothings are not equal.”
-
Panthera
őstag
Sziasztok!
Ha futtatni akarok böngészőben egy adatbázist, a következő hibát kapom a megnyitás után:
ERROR [HY000] [MySQL][ODBC 5.2(a) Driver]Unknown database 'x'ERROR [HY000] [MySQL][ODBC 5.2(a) Driver]Unknown database 'x'Kezdő vagyok és nem találom a megoldást...
-
vimes
senior tag
-
MATEO6600
őstag
Valaki el tudná magyarázni röviden mi ez az Outer Variable Trap?
Találtam róla egy leírást, de nem sikerült megértenem -
-
bandi0000
nagyúr
hali
Kérdésem lenne, hogy adatokat kellene beolvasnom tömbbe az 112 adatom van, de csak a 2. sortól kezdődik így csináltam meg, de mindig hibát észlel ezért leáll-al dob ki
int main()
{
int fo[113],eg[113],mg[113],fe[113],fm[113],be,i;
char ecs[20],mcs[20];FILE *f=fopen("meccs.txt","r"); if(f==0) return 1;
for (i=2;i<113;i++){
fscanf(f,"%d %d %d %d %d %s %s",&fo,&eg(i),&mg(i),&fe(i),&fm(i),ecs(i),mcs(i));
printf("fordulo: %d %d %d %d %d %s %s",fo(i),eg(i),mg(i),fe(i),fm(i));
}
fclose(f);Xbox One: bandymnc
Ú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!
- Lenovo ThinkPad E470, i3-6006u, 8GB RAM, 180GB SSD, gyári magyar billentyűzet, 90%-os gyári akksi!
- DELL Latitude 5590 5501 FHD IPS 15.6 gyári magyar billentyű világító opc i5-8250u i5-9400H 8GB 256GB
- Intel QuadCore i3-8100T - SR3Y8 - 3.1 GHz - 6MB - 35W - UHD Graphics 630 - LGA1151 v2
- IBM Model M membrane (fólia) kerestetik
- Hegel H120