Visual Studio 2010在使用TFS时冻结

时间:2012-06-01 00:24:49

标签: visual-studio-2010 tfs tfs2010

当我尝试在TFS或使用TFS的项目中执行大多数操作时,例如向项目添加文件时主界面会冻结。

我查看了调用堆栈,在检查项目是否处于活动状态时似乎处于死锁状态。

我尝试下载一个全新的代码副本,但这没有帮助。

我正在使用安装了SP1的VS2010。

这是刷新我的待处理更改后冻结时主线程的调用堆栈的顶部

ntdll.dll!_ZwWaitForSingleObject@12()  + 0x15 bytes
ntdll.dll!_ZwWaitForSingleObject@12()  + 0x15 bytes
Tfsprovider.dll!NVseeFC::CCriticalSection::Lock()  + 0x1d bytes
Tfsprovider.dll!CSccManager::fIsSolutionFolderProject()  + 0x3b bytes
Tfsprovider.dll!CSccManager::IsActive()  + 0x153 bytes
Tfsprovider.dll!CVsSccUI::Exec_icmdSccRefreshStatus()  + 0xbd bytes
Tfsprovider.dll!CVsCommandTargetMap<CVsSccUI,IOleCommandTarget>::Exec()  + 0x6a bytes
Tfsprovider.dll!CVsCommandTarget<NVseePkgsVssProvider::CGridBarDialog,IxNull>::Exec()  + 0x26 bytes
Tfsprovider.dll!CVsSccPackage::Exec()  + 0xa9 bytes
Tfsprovider.dll!CVsSccHatHelper::RefreshStatus()  + 0x3c bytes
[Managed to Native Transition]
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll!Microsoft.VisualStudio.TeamFoundation.VersionControl.VssProvider.RefreshStatus() + 0x35 bytes
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll!Microsoft.VisualStudio.TeamFoundation.VersionControl.ToolWindowPendingCheckinsForm.Microsoft.TeamFoundation.VersionControl.Controls.IPendingCheckinHost.RefreshPendingCheckins() + 0x69 bytes
Microsoft.TeamFoundation.VersionControl.Controls.dll!Microsoft.TeamFoundation.VersionControl.Controls.PendingCheckinsChannelControl.OnRefreshPendingCheckins() + 0x3d bytes
Microsoft.TeamFoundation.VersionControl.Controls.dll!Microsoft.TeamFoundation.VersionControl.Controls.PendingCheckinsChannelControl.RefreshSelectedChannel() + 0x22 bytes
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll!Microsoft.VisualStudio.TeamFoundation.VersionControl.CommandHandlerPendingCheckins.Refresh_Exec(Microsoft.VisualStudio.TeamFoundation.CommandHandler handler, Microsoft.VisualStudio.TeamFoundation.CommandHandler.Command command, int commandId) + 0x13 bytes
(Other calls removed, they don't look relevant)

是否还有其他人遇到此问题,或者知道修复此问题?

更新: 等待大约8分钟后,界面恢复了生机。在此期间,TFS服务器通过网络向我发送大约60,000个数据包。

更新2: 我通过手动重新创建SLN文件来修复此问题。

1 个答案:

答案 0 :(得分:3)

这种阻止行为很遗憾是“设计”问题。在Visual Studio 2010中,团队资源管理器(以及许多其他VS组件)将同步执行许多操作,并在处理时阻止Visual Studio shell中的UI线程,尤其是在源代码控制操作上。

使源控件操作异步是Visual Studio 2012中的设计目标之一 - http://blogs.msdn.com/b/bharry/archive/2011/09/01/wrapping-up-tfs-11-version-control-improvements.aspx