- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja a trendeket...
- gban: Ingyen kellene, de tegnapra
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Luck Dragon: Asszociációs játék. :)
- tildy: Új élet kezdődik
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- Austin F.: Intel Iris Xe driver frissítés
- [K2]: A vagyonvédelmi rendszerszerelővé válás rögös útja
- Lalikiraly: Astra kalandok @Harmadik rész
Új hozzászólás Aktív témák
-
ubid
senior tag
Sziasztok !
Egy excel importert kell írnom silverlight alatt.
Elegáns megoldásként úgy gondoltam, hogy mivel 4000 soros excel állományokról van szó, amiknek a felolvasása több időt vesz igénybe, hogy háttér szálon olvasson a UI fagyása nélkül.BackgroundWorkerrel szerettem volna megoldani, azonban abba a hibába ütköztem, hogy Invalid cross-thread access hibát dob.
Egy gomb eseménye a fájl betallózása :
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel workbook (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm|All files|*.*";
openFileDialog.ShowDialog();
FileInfo fileInfo = openFileDialog.File;
if (fileInfo != null)
{
tbMessages.Text = "The processing may take several minutes. Please wait...\n";
btnImporter.IsEnabled = false;
DoBackGroundWork(fileInfo);
}A DoBackGroundWork metódusom így néz ki :
private void DoBackGroundWork(FileInfo f)
{
BackgroundWorker worker = new BackgroundWorker();
fileNameProperty = f;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
}A lényeg pedig a DoWork eseménybe van :
void worker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
int totalSteps = 30;
ProcessExcelSheet(fileNameProperty);
}
}Ebbe pedig az excel kezelést ez végzi : ProcessExcelSheet(fileNameProperty);
A filNameProperty egy FileInfo-t tartalmaz, amire szükség van az excel megnyitásánál.Amikor ebbe a függvénybe meg szeretném nyitni az excel-t :
dynamic workbook = excel.Workbooks.Open(File.FullName);Akkor kapom a hibát.
Amíg ez a hosszú művelet futna egy progress baron szeretném kijeleztetni hogy éppen hol tartunk, valamint ne faggyon ugye a UI.
Hogyan tudnám ezt megoldani ha nem így ? ?
Ú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!
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja a trendeket...
- 3D nyomtatás
- Azonnali VGA-s kérdések órája
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Napelem
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- EAFC 25
- Kerékpárosok, bringások ide!
- Eurós árlista a Google Pixel 10 telefonokhoz
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- Realme 7i 64GB, Kártyafüggetlen, 1 Év Garanciával
- DELL PowerEdge R630 rack szerver - 2xE5-2650v3 (20 mag / 40 szál, 2.3/3.0GHz), 32GB RAM, 55992Ft+ÁFA
- Bomba ár! Dell Latitude E7250 - i7-5GEN I 8GB I 256SSD I 12,5" HD I HDMI I Cam I W10 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest