次のことについて助けを求めます。前もって感謝します。
vb.Net で MailKit Imap クライアントを使用してメール クライアントを作成しようとしています。Mailkit Imap クライアントはアイドル モードにあり、新しいメールが到着すると、独自のスレッドでイベントを発生させます。
これらのメールをデータベースに保存したい場合は、そのスレッドではなく、親クラスのスレッドで処理を行いたいと考えています。どうすればそれを達成できますか? フォーム コントロールで InvokeRequired と Invoke を実行できることはわかっていますが、これはフォームではなく、クラスです。
例: コードは次のとおりです。
私の ImapMonitor クラスには次のようなイベントがあります。
Class ImapMonitor
Private Sub rFolder_MessageArrived(sender as object, e as MailkitMessagesArrivedEventArgs) handles rfolder.MessagesArrived
RaiseEvent NewMessages(param1,param2)
End Sub
End Class
Class MailChecker
'My Main class which creates an object of ImapMonitor class goes :
Dim withevents iMonitor as ImapMonitor
Private Sub iMonitor_NewMessages(param1,param2) handles ImapMonitor.NewMessages 'this event is not in MailCheckers thread
'Retrieve the messages and store them in DB
End Sub
End Class