回答
在下面的評論中,您提到了您正在使用的庫並更改了整個答案。
回答您的問題:
在你的情況下,由於您使用的是SAPI.SpVoice庫,你不需要做相關的,因爲這個對象支持異步回放旋轉起來後臺線程和這樣的任何工作。檢查Speak方法的參數。下面是文檔:http://msdn.microsoft.com/en-us/library/ms723609(v=vs.85).aspx
回答你的問題,因爲它是提出:
最簡單的方法就是使用一個後臺工作進程運行一些代碼。這將允許您的程序運行一些漫長的過程,而不會阻塞UI線程。後臺工作者甚至提供事件來通知你的UI線程它的進度。
這裏是MSDN http://msdn.microsoft.com/en-us/library/cc221403(v=vs.95).aspx
一個鏈接的背景工人是一些工作分拆到另一個線程一個簡單的方法,還有其他工具更復雜的情況。本質上,你創建一個後臺工作對象的實例,並將你的長時間運行的代碼添加到一個被創建來處理它的DoWork事件的函數中。還應該處理ProgressChanged和RunWorkerCompleted事件。有些方法可以被調用來取消進程。上面的MSDN鏈接提供了一些很好的完整代碼示例。
類型'BackgroundWorker'未定義。我如何定義它? – 2011-02-06 21:17:54
包裹「若干組代碼」到我不能做任何事情方法並將其轉儲到ThreadPool上
ThreadPool.QueueUserWorkItem(AddressOf MyMethod)
傷心,線程無法解決我的問題? – 2011-02-06 20:48:41
線程池的建議爲我工作了WP7 Silverlight應用程序:
Private Sub AddAnagrams()
ClearAnagramsList()
UpdateAnagramsCount() 'update the count first, then add the items
ShowCalculating(True)
ThreadPool.QueueUserWorkItem(AddressOf UpdateAnagramsOnUIthread)
End Sub
Private Sub UpdateAnagramsOnUIthread()
Dispatcher.BeginInvoke(AddressOf UpdateAnagrams)
End Sub
Private Sub UpdateAnagrams()
ListAnagrams.ItemsSource = _Combinator.CombinedItems 'this is a virtualized datasource
ShowCalculating(False)
End Sub
Private Sub ShowCalculating(ByVal flag As Boolean)
LblCalculating.Visibility = If(flag, Windows.Visibility.Visible, Windows.Visibility.Collapsed)
End Sub
- 1. 在vb.net中運行線程
- 2. VB.Net用反射對象運行線程
- 3. 運行多線程的VB.NET代碼
- 4. 新線程運行的UI線程
- 5. 從IntentService運行新線程
- 6. 長時間運行的過程中新的線程贏形成vb.net
- 7. 在vb.net中再次運行相同的線程
- 8. 在JavaFX中運行線程
- 9. 在gtest中運行線程
- 10. C#WPF運行在新線程
- 11. 在新線程上運行Linq查詢
- 12. 在vb.net中運行程序時出錯
- 13. VB.net多線程循環,並行線程
- 14. 在vb.net中以不同用戶身份運行新進程
- 15. VB.NET:線程正在運行或終止;它無法重新啓動
- 16. 停止並用新線程替換正在運行的線程
- 17. 在舊線程運行時啓動新線程
- 18. 如何確保代碼在vb.net的主線程上運行?
- 19. WaitHandle.WaitAll在所有線程完成之前運行 - VB.Net 4.0
- 20. VB.NET中的線程
- 21. 多線程在vb.net
- 22. VB.NET在線教程
- 23. 在VB.NET中運行命令
- 24. 新手問題關於在新線程上運行進程
- 25. 如何在PHP中運行vb.net exe在線
- 26. ASP.NET中的新線程運行在不同的文化中
- 27. 在運行後臺UI中更新控件Winforms中的線程
- 28. 在線更新實施,vb.net
- 29. 在Android中的線程中運行ProgressDialog
- 30. 如何創建和運行新線程?
我不知道,你怎麼了?如果你問一個適當的問題(至少包括一個問號),也許有人可以回答。 – Blender 2011-02-06 20:34:03