Perché ricevo questo messaggio di errore? “WaitAll per più handle su un thread STA non è supportato.” Dovrei usare [MTAThreadAttribute] attribut? Aggiornamento: non funziona con le applicazioni WPF! Nota: l’errore è sulla riga WaitHandle.WaitAll (doneEvents); Sto usando un progetto WPF standard. private void Search() { const int CPUs = 2; var doneEvents = new ManualResetEvent[CPUs]; […]
Ho cercato molto ma non ho trovato una soluzione al mio problema. Ho una mia class, BaseTask , che usa un ThreadPoolExecutor per gestire le attività. Se non desidero la LinkedBlockingQueue priorità (ovvero utilizzando un object LinkedBlockingQueue ), questo funziona LinkedBlockingQueue , ma quando provo a utilizzare PriorityBlockingQueue ottengo ClassCastException perché ThreadPoolExecutor wrapping delle mie […]
Ho un’applicazione web in esecuzione in tomcat dove sto usando un ThreadPool (Java 5 ExecutorService) per eseguire operazioni intensive di IO in parallelo per migliorare le prestazioni. Vorrei che alcuni dei bean utilizzati all’interno di ciascun thread in pool fossero inclusi nell’ambito della richiesta, ma i Thread nel ThreadPool non hanno accesso al contesto di […]
Bene … Ho dato al sito una ricerca equa e ho letto molti post su questo argomento. Ho trovato questa domanda: il codice per un pool di thread semplice in C # è particolarmente utile. Tuttavia, come sembra sempre, ciò di cui ho bisogno varia leggermente. Ho esaminato l’esempio MSDN e l’ho adattato in qualche […]
Come alcuni potrebbero aver visto in .NET 4.0, hanno aggiunto un nuovo spazio dei nomi System.Threading.Tasks che fondamentalmente è ciò che significa, un’attività. L’ho usato solo per alcuni giorni, dall’uso di ThreadPool. Quale è più efficiente e meno dispendioso in termini di risorse? (O solo meglio nel complesso?)
Questa domanda dovrebbe essere un po ‘più semplice dei miei ultimi. Ho implementato la seguente coda di lavoro nel mio programma: Pool.h: // tpool class // It’s always closed. :glasses: #ifndef __POOL_H #define __POOL_H class tpool { public: tpool( std::size_t tpool_size ); ~tpool(); template void run_task( Task task ){ boost::unique_lock lock( mutex_ ); if( 0 […]
I miei concetti di Multithreading sono deboli e cercano di imparare. In java quello che so è, non possiamo chiamare un thread più di una volta, cioè Thread t = new Thread(//Some Runnable); t.start() t.start() //Illegal and throw Exception at Runtime. Per quanto ne so, genera un’eccezione quando si chiama di nuovo t.start () perché […]
Ho il seguente codice che genera un’eccezione: ThreadPool.QueueUserWorkItem(state => action()); Quando l’azione genera un’eccezione, il mio programma si arresta in modo anomalo. Qual è la migliore pratica per gestire questa situazione? Correlato: eccezioni sui thread ThreadNet di Net
È ansible creare un pool di thread usando il thread di boost? Stavo cercando tutte le librerie di boost e non sono riuscito a trovare un gestore di thread pool (o qualcosa del genere) … C’è un modo per farlo? tnx!
Sto usando un ExecutoreService in Java 1.6, iniziato semplicemente da ExecutorService pool = Executors.newFixedThreadPool(THREADS). Quando il mio thread principale è terminato (insieme a tutte le attività elaborate dal pool di thread), questo pool impedirà al mio programma di spegnersi finché non richiama esplicitamente pool.shutdown(); Posso evitare di dover chiamare questo in qualche modo trasformando la […]