Nel nostro team ci siamo confrontati con la scelta: dobbiamo chiamare il codice esterno di terze parti e processarne l'output dal nostro codice C#.Quale approccio migliore: Process.Start o chiama direttamente la DLL?
Il codice di terze parti disponibile in due formati: set di dll
s e singolo file exe
(che probabilmente sta chiamando questi dll
s da solo). E i possibili approcci potrebbero essere: usare la dichiarazione Process.Start
per eseguire un eseguibile e catturarne l'output. E un altro è quello di chiamare direttamente dll
.
Sto cercando di capire quale approccio dovremmo usare.
Da una parte chiamare eseguibile è semplice, ma dall'altra non sembra robusto.
Da un lato chiamando dll
sembra più giusto modo di fare il lavoro, ma dall'altra - potrebbe essere il compito molto complesso per fornire C#
vincolante per tutte le funzioni che abbiamo in codice nativo C
.
Ma ho bisogno di analisi più approfondite su questo argomento per prendere una decisione definitiva. Qualcuno ha di fronte la stessa domanda prima, forse potresti condividere la tua scoperta.
Sarebbe molto utile!
EDIT: Sto parlando di conversione video in questo caso particolare. Ho bisogno di ottenere il flusso video da utente e convertirlo in un formato video per tutti. È possibile chiamare ffmpeg
per fare il lavoro, e tutto è OK fino a quando qualcosa va storto e ho bisogno di riavviare la codifica o fare qualsiasi azione. Non potrei stimare quanto tempo ci vorrà e se avrò bisogno di convertire più video in parallelo ffmpeg
non sarà così flessibile, come ho intenzione di essere ...
Almeno come lo vedo ora. Forse arriveranno altri problemi mentre scrivo.
è necessario fornire molti più dettagli ... e: che cosa hai provato? Hai fatto dei test? Ci sono delle dipendenze (come COM o USB/driver o permessi, ecc.)? Ci sono instabilità? Quale livello di controllo/granularità/prestazioni hai bisogno? – Yahia