我有一个.Net控制台应用程序,可以通过Outlook的赎回功能通过电子邮件发送文档。我将“ Items.ItemAdd”事件附加到相关文件夹。该事件永远不会触发。
但是在我的WPF应用程序测试工具中,使用相同的方法和相同的引用等,它确实可以工作。
该事件实际上在控制台应用程序中起作用吗?是否有正确方法或替代方法的示例?
答案 0 :(得分:0)
您的应用需要运行Windows消息循环,事件才能正常工作。
答案 1 :(得分:0)
好的,谢谢您的提示。我尝试了各种方法,最终似乎可以按以下方式工作:
DispatcherOperation op = System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => { SomeMethod(someArgs); }));
DispatcherOperationStatus status = op.Status;
while (status != DispatcherOperationStatus.Completed && status != DispatcherOperationStatus.Aborted)
{
status = op.Wait(TimeSpan.FromMilliseconds(10000));
if (status == DispatcherOperationStatus.Completed || status == DispatcherOperationStatus.Aborted)
{
// do your final code
}
}