Frage

Ich entwickle eine Anwendung in vb 2008 und mit Hintergrund Worker-Datei kopieren (s). Ich habe meine eigene entworfen Form, die zusammen mit Kopie eines animationon auf der Oberseite der Form spielt. Für Animation spielt i m "AxMSComCtl2.AxAnimation", bei der Ausführung mit i

erhalten

„ActiveX-Steuerelement‚‘nicht instanziiert werden kann, weil der aktuelle Thread nicht in einem Singlethread-Apartment ist.“

Auf der Suche i einen Link gefunden: Forum Link

Aber noch in diesem Link ich nicht Erstens verstehen, wo diesen Schnipsel einfügen und zweitens, wie die Idee auf dem Hintergrund Arbeiter zu implementieren.

Bitte leitet mich in dieser Hinsicht.

Danke & Grüße,

Maverick.

War es hilfreich?

Lösung

Sie benötigen einen Delegierten zu verwenden, und der Haupt-Thread haben tatsächlich die Animation steuern. Sie rufen die Delegierten aus dem Hintergrund-Thread, aber es läuft im Hauptthread. Diese Seite, zweite Pfosten, hat die grobe Idee: http://www.vbforums.com/showthread.php?t=377205

Andere Tipps

Sie können keine Background verwenden dieses Steuerelement zu animieren. Es ist ein ActiveX-Steuerelement, es erfordert, dass Sie es in Ihrem App Haupt-Thread erstellen. Der gleiche Thread, der die Form erstellt.

Dies ist eine sehr häufige Beschränkung für die Kontrollen im Allgemeinen, sie nicht Threading unterstützen.

Die verlinkten Thread löst nicht das Problem. Ja, Sie können telefonisch SetApartmentState (), um Ihren eigenen STA-Thread erstellen und STA spezifiziert, aber jetzt kann man nichts mit dem Formular tun, dass Sie auf dem Haupt-Thread erstellt. Sie erhalten eine Ausnahme, wenn Sie das Steuerelement dem Formular hinzuzufügen. Die untergeordneten Steuerelemente eines Formulars muss im selben Thread wie das Formular erstellt werden.

Dies sollte im Allgemeinen kein Problem sein. Die Animation sollte angemessen sein, so lange glatt, wie Sie die Ereignisprozeduren kurz und bissig der Form halten. Wenn eine solche Bedürfnisse Event-Handler, etwas zu tun, das eine Weile dauert (und friert die Animation als Folge), dann lassen Sie eine BGW diesen Job auszuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top