- Itt az igazság a Samsung állítólagos Android Auto alternatívájáról
- iPhone topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Samsung Galaxy Watch6 Classic - tekerd!
- Vivo X200 Pro - a kétszázát!
- Apple iPhone SE - se vele, se nélküle
- A HMD visszalép az USA piacáról
- Google Pixel topik
- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
x007
tag
Szinkronizálni az Invoke metódussal lehet, tehát a fenti kód így módosítva működni fog.
ThreadPool.QueueUserWorkItem((s) =>
{
this.Invoke(new Action(() =>
{
personBindingSource.Add(new Person() { FirstName = "John", LastName = "Smith" });
}));
});A 'this' egy Form objektumra hivatkozik ezesetben.
Ha ehhez tartod magad, akkor nyílván thread safe lesz a grid, mivel csak a GUI szálon nyúlsz hozzá.
-
shev7
veterán
válasz
FehérHolló #1397 üzenetére
Akar bindingSource-on keresztul akar manualisan updateled a View-t csak akkor threadsafe ha az UI threadbol csinalod.
Ha nem UI threadbol csinalod akkor marshalloznod kell (debug mode-ban erre figyelmeztet is a VS), es ugy threadsafe marad.
x007: marshall-lal mi a baj? Thread safe is, es abbol a szalbol hivod amelyikbol akarod...
-
x007
tag
válasz
FehérHolló #1395 üzenetére
WinForms elemekhez csak a GUI szálból férhetsz hozzá, különben kivétel dobódik (ki lehet kapcsolni, de ne tegyük, nem kibaszásból csinálták
. Ezzel kizárva az Items propertyn keresztül való hozzáadás.
Ha BindingSource-t használsz, akkor is kivétel dobodik, hiszen a BindingSource is egy WinForms control.
personBindingSource.Add(new Person() { FirstName = "Jakab", LastName = "Gipsz" });
ThreadPool.QueueUserWorkItem((s) =>
{
personBindingSource.Add(new Person() { FirstName = "John", LastName = "Smith" });
});BindingList-tel viszont lehet másik szálból hozzáadni elemet. Engem ez személy szerint meglepett, mert WPF-be ilyenkor is kivétel dobódik (szerintem ez utóbbi a helyes működés).
var collection = new BindingList<Person>();
dataGridView1.DataSource = collection;
collection.Add(new Person() { FirstName = "Jakab", LastName = "Gipsz" });
ThreadPool.QueueUserWorkItem((s) =>
{
collection.Add(new Person() { FirstName = "John", LastName = "Smith" });
});Én azt tanácsolom, hogy csak GUI szálból adj az adatforráshoz elemet. Nagy szívásokba eshetsz bele, ha nem tartod ehhez magad.
-
FehérHolló
veterán
Köszi szépen!
Kicsit bővebb info: Olyan alkalmazást szeretnék csinálni, mely egy maximális elemszámú lista elemeit írja ki egy táblába. (Egy hálózaton érkezett és küldött adatok + tulajdonságaik.)
A lista folyamatosan bővül, régi elemeket törlöm a pufferből. Egy szál írja újra a DataGridView-t periodikusan, egy szál tartja karban a puffert és egy tölti azt. Utóbbi két funkció így első nekifutásra összevonhatónak tűnik, de majd elválik.
Előreláthatólag BindingSource-ot fogok használni, unbound DataGridView-val, de ez még elég képlékeny. Szívesen fogadok kódrészletet. Mint mondtam, igazából a thread safety megoldások érdekelnének, mert MSDN-en sehol nincsenek rendesen ledokumentálva a DataGridView manipuláló metódusok ilyenféle tulajdonságai.MSDN-es kódokat végignéztem már.
-
shev7
veterán
válasz
FehérHolló #1395 üzenetére
konkret peldat most nem tudok csak a threadsafe reszre valaszolnek.
ListView-t hasznaltam databinding-gal. Ha a bind-olt valtozot az UI threadbol updateled, akkor ugye minden ok. Ha masik threadbol, akkor hiaba modositod a valtozot, a ListView nem frissult. Viszont ha a valtozot modosito hivast marshallozod, akkor minden ok.
Ha addig nem valaszol senki es nem felejtem el, este masolok be kodot ha kell...
-
FehérHolló
veterán
Tud valaki mutatni egy-egy jó példát az unbound és a bound DataGridView használatára? Főleg a tartalmának dinamikus változtatása érdekelne (plusz mennyire threadsafe a mutatott példa, ilyesmi).
-
killerjohn
addikt
"egy olyan projekt kéne, ami egy 7200-as vinyón 4-5 perc alatt fordul le."
hát, ekkora méretben már gyakorlatilag eléggé komoly projektről beszélhetünk, aminek a forrását a legtöbb helyen (nálunk is) 7 pecsétes truecrypt partíción őrzik lakat alatt, bekamerázva
Viszont annyit elmondhatok, hogy amikor RAID0+1 HDD-ről RAID0+1 SSD-re váltottam, akkor a build sebesség kb megkétszereződött (OCZ Vertex Turbo VS. sima WD RAID edition).
Viszont most már a CPU a nagyobb limit, pláne, hogy a rohadt VS csak 1 szálon fordítja a sulition-ön belül még az egymástól független projekteket is (VS 2010 Ultimate final @MSDN) -
killerjohn
addikt
középsuliban 31 fős osztályban 21-nek írtam meg a póker program féléves feladatát
készült egy unit (annó pascalban), benne ~4000 soros "poker-engine", és mindenkinek 1-1 ~10 soros főpogram, ami vázlatosan így nézett ki:
InitPoker(...............................................);
BeginPoker();
DonePoker();Persze a fő unitban benne volt a nevem, és fel volt rakva a netre, mint opensource segédlet.
A számtech tanár annyira megrökönyödött, hogy ehhez volt pofánk, hogy mindenkinek adott 1-1 négyest, nekem egy ötöst, majd kiment az óráról.
-
sunsaw
tag
válasz
ArchElf #1389 üzenetére
Ha a solution-od része a DLL projektje, akkor persze, hogy újrafordul az egész, mert a VS figyeli a dependencia listát, és a DLL magával húzza a fő projektet is a fordítás során. Ezt csak úgy tudod kikerülni, ha teljesen ketté választod őket, ésa DLL-t külön solution-ba, külön projektbe teszed. Persze, emiatt két külön Visual Studio példányod lesz megnyitva egy időben, ha párhuzamosan akarod fejleszteni őket, de arra figyelj, hogy mindig a DLL-t kompájlold előbb! A DLL projekt post-build-jébe meg beteszed a másolgatós parancsokat, amik simán a másik solution megfelelő helyén felülírják a DLL-t, amire a hivatkozás mutat. Ha így csinálod, 100%, hogy nem kell újraforditanod a fő solutiont, elég futtatnod a kész .exe-t! Remélem jól értem, hogy mire gondolsz, bár nem vagyok benne teljesen biztos!
-
ArchElf
addikt
A probléma az, hogy ha valami bugfix (semmi változás a publikus funkciók felépítése) van az egyik projekt dll-ben, akkor az egész solution-t újra kell fordítanom. Hiába fordítom csak újra egyedül a DLL-t és cserélem ki a az előző build fájlájával nem fut vele a program.
AE
-
sunsaw
tag
válasz
ArchElf #1387 üzenetére
Igen lehetséges, amennyiben az új DLL ugyanazt a célt hivatott szolgálni, tehát az interfészeknek, becsatlakozási pontoknak, publikus metódusoknak, paraméterkészleteknek és attribútumoknak minimum 100%-osan ugyanazt a szolgáltatáskészletet kell kifele mutatni a hivatkozó projektnek, és akkor nincs gond. Belül természetesen lehet szépíteni/fejleszteni a rutinokat, meg lehet új funkciókat hozzáadni (bár ennek sok értelmét nem látom, amennyiben publikusakká tesszük őket, mert úgyse lesznek hívva, inkább extra belsőknek látom még értelmét). Csináltunk is ilyet Microsoft partner programozói tanfolyamon, szóval én úgy tudom, hogy lehetséges, meg szoktam is ilyet csinálni én magam is, ha jól van megírva a DLL kódja meg a hivatkozó projekté, akkor nincs gond. Egyébként ilyen másolgatós cserélgetős dolgot, amennyiben nem setup projektet gyártasz, mindenféle konzolos batch fájl-lal is automatizálhatsz, ha ez még nem jutott volna eszedbe itt: jobb-klikk Projekt / Tulajdonságok / Build events fülön tudsz fordítás utáni parancsokat kiadatni vele (copy, xcopy, akarmi.bat, stb), és láttam olyat, aki ezt komolyan használja mindennapi életben (egy MVP).
-
ArchElf
addikt
Attól még, hogy managelt a kód, nem biztos, hogy a forrást is megkapod hozzá. Onnantól meg mindegy, hogy hol a hiba: manageltnél a managed dll-ben, vagy csomagoltnál a wrapper rossz, esetleg a csomagolt dll kódja hibás.
BTW hogy lehet úgy fordítani egy alkalmazást, hogy a managelt DLL-ek - amiket más projektekben fordítok - kézzel cserélhetők legyenek install után (ne kelljen az új dll-el újrafordítanom a programot és újratelepítenem az egészet)?
AE
-
FehérHolló
veterán
Az a helyzet, hogy elég sok igazság van ebben, amit írtál. Nekem muszáj volt wrappert használnom (egyetlen interfész egy CAN és LIN hálókártya felé). Előjöttek ezek a dolgok, és rengeteget szívtam miattuk, amíg sikerült minden wrapperbeli hibát kikerülnöm (mivel elhárítani nem tudtam a wrappelés miatt).
-
sunsaw
tag
válasz
FehérHolló #1382 üzenetére
Nem tudom, irtozom az ilyen "csomagolt" megoldásoktól, mint amilynek a wrapperek, nem látom értelmét a mannaged kódolásnak, ha közben unmanaged kódokra hivatkozik a wrapper. És ha már van managed is, akkor inkább azt részesitem elönyben... jó, mondjuk egy 7zip-nél még ez talán nem akkroa probléma, de azért nem szeretek mások kodjának bugmentességében megbizni... akármikor szembe jöhet egy C-ben megirt memalloc bug egy wrappelt valamiben, és akkor "az én programom lesz szar". Szóval inkább a managed alternativákat részesitem elönyben... lehet, hogy nincs igazam!
-
shev7
veterán
válasz
FehérHolló #1382 üzenetére
plane hulyeseget, mert shakor86 nem hulyezett le senkit
-
FehérHolló
veterán
válasz
shakor86 #1371 üzenetére
Elég komoly vagy, hogy előre lehülyézed azt, aki majd esetleg segítene neked.
Egyébként meg RightToLeft attribútum.
sunsaw: Mi a bajod a wrapperrel? (Pusztán érdeklődés.)
Ha jól olvasom, itt adtak pár olyat is, ami nyílt forrású: [link]Mi a bús francnak írogatok ide ilyenkor...?
-
sunsaw
tag
válasz
ArchElf #1379 üzenetére
Jahogyoké!
De ez nem oldja meg akkor sem azt a kitételt, hogy wrapper-t ne. Valóban nem olvastam végig, lehet kövezni
Azt hittem fájl formátum miatt mondod. Gyorsan áttúrtam codeplex-et, de úgy látszik nem sok alternativ megoldás van. Egyelőre a DonNetZip tetszik, a másik kettő meg amit mondtatok: SevenZipSharp és SharpZipLib. Mindegy, háromból azért már lehet válogatni
Köszi mindenkinek.
-
ArchElf
addikt
Idézet az oldalról:
Extraction is supported from any archive format in InArchiveFormat - such as 7-zip itself, zip, rar or cab and the format is automatically guessed by the archive signature (since the 0.43 release).
You can compress streams, files or whole directories in OutArchiveFormat - 7-zip, Xz, Zip, GZip, BZip2 and Tar.AE
-
sunsaw
tag
válasz
ArchElf #1377 üzenetére
7-zip nem rossz, de maradjunk ZIP-nél, mert szörnyű lenne, ha nem tudná a beépitett Windowsos kicsomagolni a cuccost. A másik ami nem tetszik ebben, hogy ez csak egy wrapper... hasonló lib teljesen nativ kódban viszont érdekelne a későbbiekben, ha tudsz mondani! Addig is ezt viszont köszönöm szépen!
-
sunsaw
tag
Managed kódú, ingyenes ZIP/Unzip könyvtárat (dll-t) keresek, ami könnyen használható. Tud vki ajánlani valamit? Semmi extra, csak zip-be akarok csomagolgatni/bontogati kódból.
-
shakor86
csendes tag
Szijasztok, lenne egy kérdésem, és kérésem: Kaptunk programozásból egy feladatot, amivel nem igazán tudok mit kezdeni. Már 2 feladatot legyűrtem, de ez a harmadik megfogott. A feladat:
"Tervezzünk alkalmazást, mely ugyanazt a keretbe helyezett címkét jeleníti meg kétszer, és a billentyűzés a két címkében fordított irányban jelenik meg! "
Ha vki hülye gyerek szinten eltudná nekem magyarázni hogy mégis mit akar a feladat, vagy vki dob egy forráskódot örök hála meg aranyeső hulljon rá, etc.
VB2005ben kell programozni C# nyelven, tehát valami olyasmi megoldás kéne ami azon elfut
Köszönöm szépen. -
sunsaw
tag
Hát ezt honnan csaltad elő? Nekem nincs ott jobb klikkben az Add Service Reference, ahol szokott!
mod: Aztamindenit!
Visual Studio Expressben ott van, a nagytesóban meg nincs! Pedig ismeri a template-t meg minden... wow! Na ezt majd remélem javítják! Még jó hogy Express alatt nézted meg, kiderült a turpisság!
-
x007
tag
Nehezen tudtam elképzelni, de feltelepítettem az IDE-t, ott van az:
[link]Innentől annyi a dolgod, hogy csinálj egy különálló alkalmazás szerver szoftvert, ami az adatbázis műveleteket végzi. A különböző funkciókat publikáld szolgáltatásként. Importáld a szolgáltatást az SL alkalmazásba, a generált proxy osztállyal el fogod tudni érni a funkciókat.
-
sunsaw
tag
Sziasztok!
Éppen egy WinPhone7-es Silverlight alkalmazást írok (vagy szeretnék), ezért WCF RIA technológia nincsen, de muszáj lenne elérnem egy MS-SQL adatbázist, azonban ez silverlight alól csak WCF szervízen keresztül lehetséges. El tudná mondani röviden valaki, ennek mia lényegi modellje, és hogyan lehetne ezt megvalósítani? Rövidebben: Emulátorban futó silverlightos alkalmazásból kell adatbázis adatokat elérnem.
Válaszokat előre is köszi!
-
Spyx
tag
Gondolom meg van az assembly is. Ezzel a progival érdemes belenézni, meg tudja jeleníteni("visszafejteni") a forráskódot több nyelven is. [link] . Ha nem tudod letölteni akkor küldj priviben egy e-mail címet és átküldöm oda. (3-4Mb az egész)
Szerintem ennyi is elég:
DateTime currDate=DateTime.Now;
label2.Text = currDate.ToString("T");MsgBox:
az hogy warning vagy information csak abban különbözik hogy milyen Icont jelenít meg. ezt c# -ban a show-nak ezzel a változatával tudod megoldani [link] ha MessageBoxIcons enum-ból választasz értéket.
DateTime:
sajna a System.DateTime -nak csak Now és Today proertyje van és úgy néz ki továbbra is formatstringel kell megoldanod.
[link]
[link]Üdv
-
x007
tag
Igen, ez VB6-nak tűnik.
Kérdésekre válasz:
MessageBox-ra példa:
result =
MessageBox.Show(
this,
message,
caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);http://msdn.microsoft.com/en-us/library/ctd56yay.aspx
Dátum formázásra példa:
DateTime date = DateTime.Now;
date.ToString("yyyy.MM.dd hh:ss"); -
Cyno
tag
Több kódot is olvasgatok mostanság, amikről nem tudom milyen nyelven vannak. Gyanítom, hogy VB…
De erre, hogy tudok átváltani c#-ról egy projekt közben,amennyiben lehetséges?
Rengeteg dolog egyszerűbb lenne pl.:
label1.text=Format(TimeOfDay) //jah igen még annyit, hogy a sorok végén nincs ;
Ehelyett nekem c#-ban a legjobb tudásom szerint ezt így kell megoldanom:
DateTime currDate=DateTime.Now;
string c = currDate.ToString("T");
label2.Text = System.Convert.ToString(c);Akkor itt van még a MessageBox is.
Rengeteg helyen Msgbox-al hivatkoznak rá, és itt belehet állítani a tipusát is(warning, Information, stb)
Míg én: MessageBox.Show("blabla”, „warning”); de ez ugye csak nevében figyelmeztetés2. Ami még nem világos, de eddig string formázással megoldottam-de ha már kérdezek...-, hogy:
DateTime currDate=DateTime.Now; itt én csak a Now és Today-t tudom használni. Se a date,ticks, hour.. stb-t nem. -
Akane
csendes tag
Köszi szépen !!!!
1000 hála -
Spyx
tag
Én Algoritmusok és Adatszerkezetek házikkal voltam guru. volt olyan félév hogy 20 körül csináltam. Akkor vettem meg a mostani gépem
összedobták a lusta népek a rávalót.
Azóta is kapok még néha e-mailben felkérést, pedig már 3 éve nem járok oda. mindig jól jön egy kis mellékes, főleg ha 2k/óra feletti bér jön ki visszaosztva. Csak egy idő után már nehéz olyat írni ami különböző a többitől. -
Spyx
tag
Imádom az ilyen "programozo" tanoncokat. Ilyen házifeladatok pénzért való készítéséből "éltem" az egyetem alatt.
Nekem plusz gyakorlás, pénz és még a konkurencia se fejlődik legalább
win-win
Amúgy ha jól átnézed annak a hat órának az anyagát amit leadtak nektek abból meg kell tudnod csinálni a házit.
Egy kis segítség azért:
Az utolsóhoz ajánlom figyelmedbe:
A másik kettőhöz meg ezt.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public static double diagonalOfSquare(double a)
{
return Math.Sqrt(2) * a;
}
public static double surfaceOfCube(double a)
{
return a * a * 6;
}
static void Main(string[] args)
{
Console.Write("Adjon meg egy szamot: ");
string oldal = Console.ReadLine();
double a = Convert.ToDouble(oldal);
Console.WriteLine("A megadott szammal mint oldalhosszal \nNegyzet atloja: "
+ diagonalOfSquare(a) + "\nKocka felszine: "
+ surfaceOfCube(a) + "\nNyomjon ENTER-t a kilepeshez!");
Console.ReadLine();
}
}
} -
Akane
csendes tag
Sziasztok!
Egy kis segítségre lenne szükségem... Kaptam 3 beadandó programozást és elég kezdő vagyok még + a tantárgyból csak vagy 6 óránk volt összesen.C# - ban kellene programozni visual studio -val ... Nem tudná valaki leírni vagy elküldeni a megoldást
1.Készítsünk egy olyan programot, amely függvénnyel számítja ki a négyzet átlóját!
2.Írjunk programot, amely kiszámítja a kocka felszínét!
3.Rajzoljunk színes téglalapot menüvezérelt programmal! A téglalap adatait billentyűzetről olvassuk be! A téglalap keretszíne és belsejének festőszíne legyen megváltoztatható!Valaki segítsen, lécci
Címem:akanehanda@freemail.hu
Ú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!
- Vivo V40 SE 256GB, Kártyafüggetlen, 1 Év Garanciával
- PocketBook Touch HD 3 (PB632) e-könyv olvasó, Spicy Copper színben, tokjában
- Legolcsóbban Bivaly érintőképernyős Dell 7430 (12.gen Core I7 16Gb 512Gb) laptopom eladó!!!
- Samsung Galaxy Watch Ultra + Trail Band
- BESZÁMÍTÁS! SAPPHIRE Pulse OC RX 9060 XT 16GB GDDR6 videokártya 27% áfa 3 év garancia
- Honor 200 256GB Kártyafüggetlen 1Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5500 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- AKCIÓ! ASROCK H310CM i5 9600K 32GB DDR4 500GB SSD RTX 3050 8GB DeepCool Tesseract SW 500W
- LENOVO ThinkSystem NVIDIA Quadro RTX 6000 24GB PCIe Passive GPU
- LG 55G4 - 55" OLED evo - 4K 144Hz & 0.1ms - MLA Plus - 3000 Nits - NVIDIA G-Sync - FreeSync Premium
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest