Ich erstelle eine automatisierte Testlaufanwendung. In diesem Teil der Anwendung arbeite ich an einem Abfrageserver. Es funktioniert, indem der Web-Server ständig abgefragt wird, um zu bestimmen, wann ein neuer automatisierter Test ausgeführt werden sollte (für nächtliche automatisierte Läufe unserer GUI-Anwendung).Wie kann ich einen Hintergrund-Worker-Thread auf Single Thread Apartment setzen?
Wenn der Abrufserver eine Anforderung sieht, lädt er alle erforderlichen Informationen herunter und führt dann den Testlauf in einem Hintergrund-Worker aus. Das Problem besteht darin, dass ein Teil des Testlaufs OLE-, COM- und andere Aufrufe (z. B. Clipboard.Clear()
) aufweist, die im Hintergrund-Worker-Thread auftreten. Wenn einer dieser Anrufe auftritt, tritt die folgende Ausnahme:
aktuellen Thread muss einzelnen Thread Apartment (STA) Modus eingestellt werden, bevor OLE Anrufe getätigt werden können. Stellen Sie sicher, dass die Main-Funktion STAThreadAttribute enthält.
Wie kann ich einen Hintergrundarbeiter Thread als Single-Thread-Wohnung markieren? Der Hauptaufruf in meinem Program.cs hat offensichtlich dieses Attribut bereits.
' Clipboard.Clear() 'ist nicht COM Es ist native Windows-API – Aliostad
Zwischenablage verwendet COM zu verhandeln.. Zwischenablage Daten und Formate –