[英]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.