Sto creando un'applicazione di test automatica in esecuzione. In questa parte dell'applicazione, sto lavorando su un server di polling. Funziona eseguendo costantemente il polling del server Web per determinare quando deve essere eseguito un nuovo test automatico (per le sessioni automatizzate notturne della nostra applicazione GUI).Come posso impostare un thread di background worker impostato su Single Thread Apartment?
Quando il server di polling rileva una richiesta, scarica tutte le informazioni necessarie e quindi esegue l'esecuzione di test in un operatore in background. Il problema è che parte dell'esecuzione di test ha OLE, COM e altre chiamate (ad esempio, Clipboard.Clear()
) che si verificano nel thread di lavoro in background. Quando si verifica una di queste chiamate, si verifica la seguente eccezione:
Il thread corrente deve essere impostato sulla modalità apartment a thread singolo (STA) prima che sia possibile effettuare le chiamate OLE. Assicurati che la tua funzione principale abbia STAThreadAttribute segnato su di essa.
Come posso contrassegnare un thread di background worker come apartment a thread singolo? La chiamata principale nel mio Program.cs ovviamente ha già quell'attributo.
' Clipboard.Clear() 'non è COM E 'nativo API di Windows – Aliostad
Clipboard utilizza COM per negoziare.. dati e formati degli appunti –