Hirdetés

2024. május 3., péntek

Gyorskeresés

Hozzászólások

(#1351) Akane


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.:O C# - ban kellene programozni visual studio -val ... Nem tudná valaki leírni vagy elküldeni a megoldást :F
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 :O
Címem:akanehanda@freemail.hu

(#1352) Spyx válasza Akane (#1351) üzenetére


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. :D 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:

[link]
[link]

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();
}
}
}

[ Szerkesztve ]

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#1353) kovsol válasza Spyx (#1352) üzenetére


kovsol
titán

nálunk amikor assembly beadandó idő volt akkor már regiszterekkel álmodtam :DDD mert annyi feladatot csináltam, amúgy totál egyet értek veled az első offba rakott részről :K

[ Szerkesztve ]

May the Force be with you!

(#1354) Spyx válasza kovsol (#1353) üzenetére


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 :D összedobták a lusta népek a rávalót. :C
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.

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#1355) Akane


Akane
csendes tag

Köszi szépen !!!! :D
1000 hála :R :R :R

(#1356) Cyno


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és

2. 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.
:R

(#1357) x007 válasza Cyno (#1356) üzenetére


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");

http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

[ Szerkesztve ]

(#1358) Spyx válasza Cyno (#1356) üzenetére


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

Gyötrődő halálos játék: élet! Tőled én még mit kívánnék?!...

(#1359) sunsaw


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!

Windows Phone 7 Developer

(#1360) x007 válasza sunsaw (#1359) üzenetére


x007
tag

Lehet, hogy nem értem a problémád, de az "Add Service Reference"-re kattintva hozzá tudod adni a szolgáltatásaidat.

(#1361) LW


LW
őstag

Sziasztok.
SpyX-hez hasonlóan elárasztottam magamat házifeladatokkal :) és e maratoni munka közben, gondoltam építő szakvéleményezésre kiteszem a kész alkotásokat.
Ezzel kezdem a sort:) A megoldáshoz tartozó feladat itt található.
Ha rávetemedne valaki, előre is köszönöm! :DDD

[ Szerkesztve ]

(#1362) shev7 válasza LW (#1361) üzenetére


shev7
veterán

ha azt akarod, hogy tobben megnezzuk legjobb ha felrakod a kodot valahova a netre, ahol meg lehet nezni es nem kell rar kicsomagolassal szenvedni. Tudom ajanlani ezt. Biztos tobb kommentet kapsz

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1363) sunsaw válasza x007 (#1360) üzenetére


sunsaw
tag

Igen, nem! Mármint, nem érted, mire gondolok. Egyébként SL-ben nincs is Add Service Reference.

Windows Phone 7 Developer

(#1364) LW válasza shev7 (#1362) üzenetére


LW
őstag

(#1365) x007 válasza sunsaw (#1363) üzenetére


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.

(#1366) sunsaw válasza x007 (#1365) üzenetére


sunsaw
tag

Hát ezt honnan csaltad elő? Nekem nincs ott jobb klikkben az Add Service Reference, ahol szokott! :Y

mod: Aztamindenit! :Y 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!

[ Szerkesztve ]

Windows Phone 7 Developer

(#1367) sunsaw


sunsaw
tag

Nincs add service reference... VS2010 Ultimate RTM, és ismeri a Phone Template-ket, mint ahogy Blend 4 RC is, mégse...

Katt a képre nagyításért!

[ Szerkesztve ]

Windows Phone 7 Developer

(#1368) sunsaw válasza x007 (#1365) üzenetére


sunsaw
tag

Ettől függetlenül a második részre kellene nekem minimál mintakód. Nem tudnál összedobni vallami "Hello Service!" pöttömséget? :B

Windows Phone 7 Developer

(#1369) x007 válasza sunsaw (#1368) üzenetére


x007
tag

Azt már csinálhatod WCF-fel, arra meg van kismillió mintapélda neten.

(#1370) sunsaw válasza x007 (#1369) üzenetére


sunsaw
tag

Oké, köszi!

Windows Phone 7 Developer

(#1371) shakor86


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.

(#1372) ArchElf válasza shakor86 (#1371) üzenetére


ArchElf
addikt

Mi az a "keretbe helyezett címke"?

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1373) Jester01 válasza ArchElf (#1372) üzenetére


Jester01
veterán


Gondolom ahogy a felhasználó nyomkodja a gombokat, az egyik címkébe rendesen a másikba pedig visszafelé kell megjeleníteni a szöveget.

Jester

(#1374) sunsaw


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.

Windows Phone 7 Developer

(#1375) x007 válasza sunsaw (#1374) üzenetére


x007
tag

(#1376) sunsaw válasza x007 (#1375) üzenetére


sunsaw
tag

Ezt már ismertem, találkoztam vele anno, csak nem emlékeztem, hol találkoztam vele... ez tényleg nem, rossz, esetleg más tipp? (ami jobb, gyorsabb, egyszerűbb esetleg, stb). Csak ez az egy van? :U

Windows Phone 7 Developer

(#1377) ArchElf válasza sunsaw (#1376) üzenetére


ArchElf
addikt

7zSharp
7z.dll, 7za.dll kell hozzá.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1378) sunsaw válasza ArchElf (#1377) üzenetére


sunsaw
tag

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!

Windows Phone 7 Developer

(#1379) ArchElf válasza sunsaw (#1378) üzenetére


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

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1380) sunsaw válasza ArchElf (#1379) üzenetére


sunsaw
tag

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 :B 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.

Windows Phone 7 Developer

(#1381) ArchElf válasza sunsaw (#1380) üzenetére


ArchElf
addikt

ZLIB.NET
ZIPForge.NET

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1382) FehérHolló válasza shakor86 (#1371) üzenetére


FehérHolló
veterán

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...?

[ Szerkesztve ]

Skynet is real. It's called Google.

(#1383) shev7 válasza FehérHolló (#1382) üzenetére


shev7
veterán

plane hulyeseget, mert shakor86 nem hulyezett le senkit :D :D

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1384) FehérHolló válasza shev7 (#1383) üzenetére


FehérHolló
veterán

Az élet kegyetlen. :)
Mindenesetre bocsánatot kérek tőle. Az on topic része viszont korrekt a válaszomnak.

[ Szerkesztve ]

Skynet is real. It's called Google.

(#1385) sunsaw válasza FehérHolló (#1382) üzenetére


sunsaw
tag

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!

Windows Phone 7 Developer

(#1386) FehérHolló válasza sunsaw (#1385) üzenetére


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).

Skynet is real. It's called Google.

(#1387) ArchElf válasza sunsaw (#1385) üzenetére


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

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1388) sunsaw válasza ArchElf (#1387) üzenetére


sunsaw
tag

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).

Windows Phone 7 Developer

(#1389) ArchElf válasza sunsaw (#1388) üzenetére


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

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1390) sunsaw válasza ArchElf (#1389) üzenetére


sunsaw
tag

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!

[ Szerkesztve ]

Windows Phone 7 Developer

(#1391) killerjohn válasza Spyx (#1354) üzenetére


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. :D

(#1392) killerjohn válasza sunsaw (#1374) üzenetére


killerjohn
addikt

ez a legjobb (szvsz): [link]

(#1393) killerjohn válasza fLeSs (#1284) üzenetére


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)

(#1394) amargo válasza ArchElf (#1389) üzenetére


amargo
addikt

a specific version-be van kapcsolva?
Ez az assembly version-t figyeli. Ha be van kapcsolva, akkor a programod, csak csak azzal az dll-el fog futni, amivel fordítva lett.

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#1395) FehérHolló


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).

Skynet is real. It's called Google.

(#1396) shev7 válasza FehérHolló (#1395) üzenetére


shev7
veterán

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...

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1397) FehérHolló válasza shev7 (#1396) üzenetére


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.

Skynet is real. It's called Google.

(#1398) x007 válasza FehérHolló (#1395) üzenetére


x007
tag

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.

(#1399) shev7 válasza FehérHolló (#1397) üzenetére


shev7
veterán

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...

[ Szerkesztve ]

''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''

(#1400) x007 válasza x007 (#1398) üzenetére


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á.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.