繁体   English   中英

VSTO Outlook加载项中的分叉线程

[英]Forking threads in VSTO outlook add-in

我有一个工具栏加载项,旨在将选定的邮件添加到非常慢的内部存档中。 目前,我一次循环浏览每封电子邮件,这很慢。 我是否可以为插件中的每次上传创建一个线程,然后在所有操作完成后加入? 还是在Outlook沙箱中禁止使用该功能?

为这个懒惰的问题表示歉意,对于以后发现它的任何人,没有什么可以阻止您在VSTO应用程序中创建线程。 以下测试子可以用来确认这一点:

Private Sub Button3_Click(sender As Object, e As RibbonControlEventArgs) Handles Button3.Click

    Dim myData As String() = New String() {"a", "b", "c"}
    Debug.WriteLine("Starting")
    Using signalEv As CountdownEvent = New CountdownEvent(1)

        For Each s As String In myData
            signalEv.AddCount()
            ThreadPool.QueueUserWorkItem(Sub(state)
                                             Try
                                                 ProcessData(state)
                                             Finally
                                                 signalEv.Signal()
                                             End Try
                                         End Sub,
                              s)

        Next

        signalEv.Signal()
        signalEv.Wait()
    End Using
    Debug.WriteLine("all done")


End Sub
Private Sub ProcessData(s As String)
    Debug.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString & " data: " & s)
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM