2011-06-16 39 views
0

我正在使用Microsoft.TeamFoundation.Client命名空間中的Workspace類從Team Foundation Server獲取特定分支的最新代碼。如何檢查TFS Workspace.Get方法何時完成?

workspace.Get(new string[] { SelectedRelease.ServerPath }, VersionSpec.Latest, 
RecursionType.Full, GetOptions.GetAll); 

當我得到最新的代碼後,我以編程方式構建相關解決方案。代碼可以在here之後找到。

我的問題是'我怎樣才能找出當Workspace.Get方法完成?在下載完成之前我無法構建它。我想過監視解決方案文件夾,但我不知道該文件的內置順序。

+1

這個問題可能是對你有用的:http://stackoverflow.com/questions/5184252/using-the-tfs-2010- api-to-subscribe-to-workspace-events – 2011-06-16 10:19:25

+0

謝謝@Jamie Dixon,那正是我所追求的。你能否將你的評論粘貼到答案中,以便將這個問題標記爲答案? – Sheridan 2011-06-16 22:50:31

回答

2

它不是異步的。一旦它返回,你的get就完成了。

如果您想要在另一個線程中偵聽完成(並使用TFS的事件系統來完成此操作,而不是滾動自己的),可以將一個GettingEventHandler連接到您的VersionControlClient。

+0

它是異步的。我的程序繼續,而它獲取文件...爲什麼我會發布這個問題? – Sheridan 2011-06-16 22:48:57

+1

你確定你沒有看到其他一些行爲嗎?例如,如果你指定了一個無效的服務器路徑,那麼Workspace.Get將立即返回(沒有什麼可做)。結果GetStatus是什麼樣子的? – 2011-06-17 13:27:17

+0

經過進一步檢查,我相信你對我以前的評論可能是正確的,並且全心全意地道歉。事實上,這確實解釋了該計劃的一些奇特行爲,所以謝謝。 +1 – Sheridan 2011-06-17 14:06:37

相關問題