Come migliorare le prestazioni di apertura di Microsoft Word quando automatizzato da C #?

StackOverflow https://stackoverflow.com/questions/2482396

  •  21-09-2019
  •  | 
  •  

Domanda

Ho modello di Microsoft Word che ho automatizzato di riempimento è campi da mia domanda, e quando le richieste degli utenti di stampare apro questo modello.

Ma la creazione di l'applicazione Word ogni volta che un utente richiede di stampare dopo i campi di riempimento è molto costoso e può portare a un certo ritardo durante l'apertura del modello. Così ho scelto di memorizzare nella cache il riferimento alla Parola, allora basta aprire il nuovo modello riempito.

Che ha risolto il problema di prestazioni, come l'apertura del file è meno costoso di ricreare Word ogni volta, ma questo funziona solo quando l'utente appena si chiude il documento non l'intera applicazione Word. Quando questo accade il mio riferimento a Word non è più valido e ritorna con eccezione: " Il server RPC non è disponibile " sulla successiva richiesta di aprire il modello. Ho cercato di sottoscrivere l'evento BeforeClosing ma ciò fa scattare smettere Parola così come i documenti di chiusura.

La mia domanda è come sapere se la Parola sta chiudendo un documento o smettere l'intera applicazione così prendo l'azione corretta, o qualsiasi suggerimento per un'altra direzione di pensare migliorare le prestazioni di aprire un modello di Word.

È stato utile?

Soluzione

Sono familiarità con il modo di iscriversi correttamente agli eventi di chiusura di Word. Ma sembra come uno opzione che si potrebbe prendere è quello di assumere ottimisticamente che Word non è chiuso e utilizzare il percorso di memorizzazione nella cache. Ad alto livello catturare il tipo Exception gettato quando Word è chiuso. Se si verifica questa eccezione, rimuovere il riferimento alla parola e ripetere l'operazione come stava accadendo per la prima volta.

Non si ottiene la memorizzazione nella cache per tutto il tempo in questo modo. Ma si sarà in grado di approfittare di situazioni in cui l'utente chiude solo il documento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top