Hirdetés
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Xiaomi 17 Ultra - jó az optikája
- Android alkalmazások - szoftver kibeszélő topik
- Honor 200 Pro - mobilportré
- Redmi Note 14 5G - jól sikerült az alapmodell
- iPhone topik
- Hivatalos a Poco X8 Pro Max gigantikus akkukapacitása
- Mától Huawei okosórákkal is lehet érintésmentesen fizetni
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Xiaomi 15T Pro - a téma nincs lezárva
Új hozzászólás Aktív témák
-
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.
Ú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!
- Garancia kérdés, fogyasztóvédelem
- Építő/felújító topik
- A fociról könnyedén, egy baráti társaságban
- Házimozi haladó szinten
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Xbox tulajok OFF topicja
- One otthoni szolgáltatások (TV, internet, telefon)
- Crimson Desert
- Hálózati / IP kamera
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
- További aktív témák...
- Nvidia GeForce RTX 3070 Founders Edition 8GB, Garanciával!
- Új, Gamer félgép - GIGABYTE B850 GAMING X WiFi + Ryzen 7 9800X3D + Corsair 2x16GB DDR5 6000MHz
- Újszerű MSI Thin 15 - 15.6"FHD 144Hz - i5 -13420H - 16GB - 512GB - Win11- RTX 3050 - 2+ év garancia
- Intel Core I9 14900KS - 24mag/32szál - Eladó!
- Apple TV 4K 2021 32 GB (A2169)
- 27% - ÚJ - GIGABYTE RTX 5080 AORUS MASTER 16GB GDDR7 Videokártya! BeszámítOK
- Dell Optiplex 3010 MT,G-870,4GB RAM,500GB HDD,WIN10
- Asus VivoBook W11 Laptop (X1504ZA-BQ856W)!
- HP Omen 17 QHD 240Hz / RTX 4090 / i7-13700HX / 32GB DDR5 / 1TB SSD! BeszámíTOK
- HIBÁTLAN iPhone 11 Pro Max 64GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS4584
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

