Hirdetés
- VoLTE/VoWiFi
- Milyen okostelefont vegyek?
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Xiaomi 13 - felnőni nehéz
- Bemutatkozott a Poco X7 és X7 Pro
- Google Pixel topik
- Poco F8 Ultra – forrónaci
- EarFun Air Pro 4+ – érdemi plusz
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
Ú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!
- VoLTE/VoWiFi
- Robotporszívók
- Házi hangfal építés
- Stratégiai biztonsággal védekeznek a dráguló memóriák ellen a gyártók
- Debrecen és környéke adok-veszek-beszélgetek
- World of Tanks - MMO
- Melyik tápegységet vegyem?
- Jövedelem
- VR topik
- Még a saját divíziójának sem kegyelmez a Samsung
- További aktív témák...
- !!AKCIÓ!! GAMER PC AMD Ryzen 5 5600X/MSI MPG B550 GAMING PLUS/GeForce RTX 4070 DUAL 12 GB/32GB DDR4
- Apple iPad A16 (2025) 128GB, Wi-Fi, 1 Év Garanciával
- Apple iPhone 12 Mini 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 16 128GB, Kártyafüggetlen, 1 Év Garanciával
- XPS 14 9440 13.4" 3K OLED érintő Ultra 7 155H RTX 4050 32GB 1TB NVMe ujjlolv gar
- Xiaomi Redmi 13 4G 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 100% Akkumulátor
- Xiaomi Redmi Note 13 8/256GB / 12 hónap jótállással!
- HIBÁTLAN iPhone 13 Pro Max 128GB Alphine Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3722, 100% Akksi
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


