正しく実行すると、バックグラウンドスレッドでRedemptionを使用することは完全に可能です。 MAPI内部では同じスレッドでメッセージポンプを作成する必要があるため、作成するfirsr RDOSessionオブジェクトはUIスレッドで作成する必要があります。通常、このRDOSessionはアプリの存続期間中保持する必要があります。他のスレッドからこのオブジェクトにアクセスすることはできません。
最初のRDOSessionのMAPIOBJECTプロパティを各ワーカースレッドに渡し、各スレッド内から新しいRDOSessuionオブジェクトを作成し、RDOSessionのMAPIOBJECTをスレッドで作成された2次RDOSessionに割り当てる必要があります。例:
(Aircode警告:以下のコードがメモリから入力した)
Dim PrimaryRDOSession As New Redemption.RDOSession()
PrimaryRDOSession.Login([...])
Dim WorkerThread as New System.Threading.Thread(AddressOf ThreadProc)
WorkerThread.Start(PrimaryRDOSession.MAPIOBJECT)
Sub ThreadProc(ByVal param as Object)
Dim ThdRDOSession As New Redemption.RDOSession()
ThdRDOSession.MAPIOBJECT = param
' do other stuff
End Sub
そこから、あなたは通常、償還を行うだろう何かを行うことができます。 Outlookオブジェクトがあるスレッドで選択/配置され、別のスレッドで操作された場合、スレッド間でEntryIDを渡すことができます。
問題を説明しようとすると、いつもよりうまく動作します:)私は多くの質問に答えました。 – leppie