Új hozzászólás Aktív témák
-
ArchElf
addikt
Hálózati scannert írtam ezzel a technikával, meg a szakdolgozatomban egy behaviour monitoring rendszert csináltam, és az is többszálú volt (több log-forrást kellett egymás mellett feldolgoznia). Igazából ott egy csomó mindent kipróbáltam a multitherading mellett:
- teszt esetek, teszt források, többszálúság tesztelése, streszteszt, stb.
- dll futás közbeni betöltés, Interface alapú osztály használatAE
-
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
-
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).
-
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
-
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.
-
x007
tag
Tanulmányozd a Binding objektumot... Nagyon sokmindent meg lehet vele csinálni.
http://www.c-sharpcorner.com/UploadFile/mahesh/WPFDataBinding08012008233147PM/WPFDataBinding.aspx -
x007
tag
Linq to SQL
Entity FrameworkEzek nem alternatívái a DataSet-nek, mert kapcsolatalapú adatelérést biztosítanak ellentétben a DataSet-tel, ami kapcsolat nélküli adatelérést biztosít. Keress rá, hogy ezek mit jelentenek, nem akarok regélni
.Mérlegelni kell, hogy az alkalmazásodnak melyik jó. Én úgy gondolom, hogy egy szótár szoftvernek fölösleges betöltenie az összes szót a memóriába, így érdemes használni a fent említett két technológia közül az egyiket. Linq to SQL-t szoktam használni, de a jövő egyértelműen az Entity Framework (mondjuk jelen állapotáról nem sok jót hallottam eddig
). -
x007
tag
-
x007
tag
Olvass dokumentációt...
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx -
x007
tag
Jaaaa, WPF-ben nincsen gyári DoEvents, viszont van workaround:
private void button1_Click(object sender, RoutedEventArgs e)
{
button1.IsEnabled = false;
WpfApplication.DoEvents();
Thread.Sleep(3000);
button1.IsEnabled = true;
}
/// <summary>
/// Designates a Windows Presentation Foundation application model with added functionalities.
/// </summary>
public class WpfApplication : Application
{
private static DispatcherOperationCallback exitFrameCallback = new
DispatcherOperationCallback(ExitFrame);
/// <summary>
/// Processes all UI messages currently in the message queue.
/// </summary>
public static void DoEvents()
{
// Create new nested message pump.
DispatcherFrame nestedFrame = new DispatcherFrame();
// Dispatch a callback to the current message queue, when getting called,
// this callback will end the nested message loop.
// note that the priority of this callback should be lower than the that of UI event messages.
DispatcherOperation exitOperation = Dispatcher.CurrentDispatcher.BeginInvoke(
DispatcherPriority.Background, exitFrameCallback, nestedFrame);
// pump the nested message loop, the nested message loop will
// immediately process the messages left inside the message queue.
Dispatcher.PushFrame(nestedFrame);
// If the "exitFrame" callback doesn't get finished, Abort it.
if (exitOperation.Status != DispatcherOperationStatus.Completed)
{
exitOperation.Abort();
}
}
private static Object ExitFrame(Object state)
{
DispatcherFrame frame = state as DispatcherFrame;
// Exit the nested message loop.
frame.Continue = false;
return null;
}
}Megjegyzem, hogy ez továbbra se fogja teljes mértékig megoldani a problémát, mert az ablak ugyanúgy meg fog fagyni a DB kapcsolat tesztelésekor. (WinForms esetén is így lenne) Szóval mindenképpen javaslom a BackGroundWorker használatát.
-
x007
tag
A problémádat megoldja, hogyha a DisableControls() után meghívod a Application.DoEvents() metódust. Az ilyen megoldásokat azonban, ha lehet, kerüljük. Általánosságban elmondható, hogy időigényes feladatokat nem hajtunk végre a GUI szálon (ilyen egy vezérlő eseménye is, pl: Click), hanem egy új szálat hozunk létre, hogy a végrehajtás a háttérben történjen. Ezt könnyen megteheted a BackgroundWorker komponens segítségével, elég sok problémát levesz a programozó válláról.
Valami ilyet kéne csinálnod:
private void button1_Click(object sender, EventArgs e)
{
DbDetails arg =
new DbDetails
{
Server = ...,
Database = ...,
User = ...,
Password = ...,
};
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
backgroundWorker1.RunWorkerAsync(arg);
}
private class DbDetails
{
public string Server { set; get; }
public string Database { set; get; }
public string User { set; get; }
public string Password { set; get; }
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
DbDetails arg = e.Argument as DbDetails;
e.Result = TestConnection(arg.Server, arg.Database, arg.User, arg.Password);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null && (bool)e.Result)
{
//Sikerult csatlakozni
//TODO: Impl
}
else
{
//Nem sikerult csatlakozni
//TODO: Impl
}
}A DoWork eseménykezelőbe kell helyezned a kódot, amit a háttérben szeretnél végrehajtani. Fontos, hogy ebben nem hivatkozhatsz a Form-on található vezérlőkre szinkronizációs problémák miatt. Ezért van szükség jelen példában a DbDetails segédosztályra.
A RunWorkerCompleted eseménykezelő a feladat végrehajtása után mindig végrehajtódik. Ha valamilyen kivétel keletkezett, akkor azt a e.Error tulajdonságból kiolvashatod. Az e.Result tulajdonságból a DoWork eseménykezelőben beállított visszatérési érték olvasható ki.
-
Lortech
addikt
a gombok es textbox-ok csak akkor lesznek hajlandoak elszurkulni, ha mar megvan a testConnecion metodus viszateresi erteke
Miből jött le, hogy már megvan adott pillanatban a testConnection visszatérési értéke, hogy lehet meg a visszatérési értéke, ha elvileg meg sem hívtad?
Ránézésre szerintem nem a bemásolt kódban keresendő a megoldás, hanem valami olyan kódról, amiről nem tudod, hogy hamarabb fut le, mint gondolnád, pl. static vagy konstruktorok, vagy el elfelejtett metódus hívás. testConnection-re mehetne egy method breakpoint és hívási fát meg kéne nézni.
Ú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!
- Xiaomi 12T - 8/128GB I Dimensity 8100-Ultra I Doboz + Tok +120W töltő I Foxpost
- MacSzerez.com - 2024 MacBook Air 15" M3 / 16GB / 512GB SSD / Midnight / Garancia!
- ÚJ Lenovo ThinkPad L14 G6 - 14"WUXGA - Ultra 5 225U - 16GB - 512GB - Win11 P - 3 + év gyári garancia
- 32GB DDR5! ÚJ Lenovo ThinkCentre M70s G5 SFF: i5 14500 (14mag), 32GB DDR5, 512GB, ÚJ HU bill + egér
- Acer Swift SFX14-73G 3K OLED érintő Ultra 7 255H Nvidia GeForce RTX 5060 512GB 16GB gar
- TP Link HS100 Távolról vezérelhető Wi-Fi-s dugalj (Smart Plug)
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 1TB 1 év teljeskörű garancia
- -68%OFF HP Spectre x360 14 (14-ef2276ng) i7-1355U/16GB/1TBSSD/3K 3000X2000 Amoled
- iKing.Hu - Használt, karcmentes Google Pixel 9 Pro Fold Obsidian színben, 256 GB tárhellyel, 6 hónap
- LG 75QNED86T3A / QNED / 75" - 164 cm / 4K UHD / 120Hz / HDR Dolby Vision / FreeSync Premium / VRR
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


