누군가 아래의 코드에서 STA 스레드를 사용할 때 "OnNewMail"이벤트가 발생하지 않는 이유를 설명해주십시오. 프로그램은 Redemption 라이브러리를 사용하여 수신 Outlook 메일을 가로 채려고 시도합니다. 트레드가 STA 스레드이며 라이브러리가 같은 시간에 아무것도 할 수 없습니다 입력 대기 및 이메일이 도착하면 이벤트가 발생 할 기회가없는STA 스레드에서 실행되는 동안이 COM interop 이벤트가 발생하지 않는 이유는 무엇입니까?
class Program
{
[STAThread()] // When this line is deleted the application works
static void Main(string[] args)
{
RDOSession session = GetSession();
session.OnNewMail += Session_OnNewMail;
Console.ReadLine();
}
static void Session_OnNewMail(string EntryID)
{
Console.WriteLine("New mail received");
}
private static RDOSession GetSession()
{
var session = new RDOSession();
var application = new ApplicationClass();
session.MAPIOBJECT = application.Session.MAPIOBJECT;
return session;
}
}