1

次のことについて助けを求めます。前もって感謝します。

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
4

1 に答える 1