Hirdetés
- 5.1, 7.1 és gamer fejhallgatók
- Kormányok / autós szimulátorok topikja
- Milyen videókártyát?
- 3D-s gyorsítótárat mindenkinek!
- Nem indul és mi a baja a gépemnek topik
- Pánik a memóriapiacon
- Őrületes specifikációkkal rendelkezik a Tachyum csodaprocesszora
- Hővezető paszták
- Meghalt a Windows 10, éljen a Windows 10!
- ThinkPad (NEM IdeaPad)
Ú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!
- 5.1, 7.1 és gamer fejhallgatók
- Kormányok / autós szimulátorok topikja
- Álláskeresés, interjú, önéletrajz
- Milyen videókártyát?
- Battlefield 6
- 3D-s gyorsítótárat mindenkinek!
- Nem indul és mi a baja a gépemnek topik
- Pánik a memóriapiacon
- Őrületes specifikációkkal rendelkezik a Tachyum csodaprocesszora
- BestBuy topik
- További aktív témák...
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPad 9th Gen 256GB, Wi-Fi+Cellular, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Pad SE 64GB, Kártyafüggetlen, 1 Év Garanciaval
- Nuki Smart Lock Ultra okoszár
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Apple iPhone 14 Pro 512GB,Újszerű,Dobozával,12 hónap garanciával
- GIGA AKCIÓ!!! AKTIVÁLATLAN iPad Air M2 11" WiFi + CELLULAR 512GB!!! KÉK
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


