Esporta in Excel - threading

0

Sto lavorando su un'applicazione ASP.NET . Un requisito da parte degli utenti è che sono in grado di esportare in Excel di alcune UI. Ho lavorato su di loro utilizzando la libreria Infragistics e ho fornito loro le esportazioni che desiderano.

Tuttavia, alcune delle interfacce utente che vedono sono così complesse da richiedere una notevole quantità di tempo per l'esecuzione di un'applicazione web. Ad esempio, un'esportazione può richiedere alcuni minuti, ad esempio 4-5 minuti.

Mi stavo chiedendo, se ci fosse un modo, in cui avrei potuto fare questo compito per essere fatto in modo asincrono, usando thread e renderlo per durare più breve.

    
posta Peter Mortensen 10.04.2014 - 16:36
fonte

1 risposta

3

Sospetto che se introduci il threading nel processo export-to-Excel, ora avrai due problemi, invece di uno solo.

Devi dare un'occhiata approfondita al codice di esportazione e preferibilmente eseguirlo attraverso un profiler in modo da poter vedere dove viene speso il tempo. Una volta che sai dove sono i colli di bottiglia, puoi applicare la tecnologia giusta per risolvere il problema.

Lanciare i fili a un problema sconosciuto ha una maggiore probabilità di peggiorare (molto) le cose.

Mentre stai investigando su quale sia la radice del problema, puoi considerare di spostare il processo export-to-Excel in un processo in background che può essere eseguito indipendentemente dalla sessione dell'utente. Passare a un processo in background non risolverà il tempo di attesa o le percezioni dell'utente sulle cose, ma consentirà almeno all'utente di andare a lavorare su qualcos'altro mentre attendono il completamento dell'esportazione.

Come segnalato da Doc Brown , l'utilizzo di thread in background è piuttosto comune tecnica per liberare il thread principale. Usando in questo modo un thread in background non introduce le potenziali insidie associate al threading di un processo di esportazione. E puoi spostare il processo sullo sfondo senza introdurre molto, se non del tutto, l'overhead mentale derivante dall'uso di thread asincroni.

    
risposta data 10.04.2014 - 16:43
fonte

Leggi altre domande sui tag