评估需要一个线程暂时运行。使用Watch窗口执行评估

我完全卡住了。我正在测试MetaTrader API并在尝试在VS 2010的立即窗口中运行方法时获取下一个错误:   mscorlib.dll中出现'System.Threading.ThreadAbortException'类型的第一次机会异常      System.Runtime.Remoting.dll中出现'System.Threading.ThreadAbortException'类型的第一次机会异常      评估需要一个线程暂时运行。使用“监视”窗口执行评估。 这是什么意思?是否会因运行时版本的差异而发生(api 2.0,app 4.0)?     
已邀请:
我相信你通过立即窗口调用的方法最终调用Debugger.NotifyOfCrossThreadDependency。此方法仅在.NET 4.0中引入,因此在使用较旧版本的运行时时,问题不会重现。这篇博文详细解释了
NotifyOfCrossThreadDependency
,但它的要点是它使Watch窗口显示一个刷新按钮,必须在评估发生之前按下该按钮。但是,如果通过立即窗口进行评估,则会得到“评估需要临时运行的线程。使用”监视“窗口执行评估”错误。 这是一个重现此错误的示例属性:
    public int CauseError
    {
        get 
        {                
            Debugger.NotifyOfCrossThreadDependency();
            return 5;
        }
    }
    
我相信错误意味着您尝试执行的方法正在产生一个线程。但是,由于程序处于Break模式,因此无法运行。为了避免死锁(方法将永远等待一个不会运行的线程),Visual Studio会杀死所有生成的线程。 我的建议是将调用移动到程序中,并使用其他方法来执行它。     
那是因为服务器在.NET 2.0和客户端(通过.NET Remoting)下运行 - 在.NET 4.0下。 将客户端切换到.NET 2.0 / 3.5解决了这个问题。     
不要删除app.config,其中包含如下信息:
<configuration>
  <configSections>
    <sectionGroup name="userSettings" 
                  type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section 
               name="MySolution.Properties.Settings"
               type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
               allowExeDefinition="MachineToLocalUser" 
               requirePermission="false" />
    </sectionGroup>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>
    
关闭你的VS并重建你的应用程序它会帮助你。     

要回复问题请先登录注册