C# WPF.NETV4.7.2在调试和直接模式下运行的区别
我使用的是.NET4.0,现在我已更新到.NET4.7.2。我注意到了非常令人担忧的问题。现在,当从Visual Studio(2012)调试器运行或直接从C# WPF.NETV4.7.2在调试和直接模式下运行的区别,c#,wpf,datagrid,C#,Wpf,Datagrid,我使用的是.NET4.0,现在我已更新到.NET4.7.2。我注意到了非常令人担忧的问题。现在,当从Visual Studio(2012)调试器运行或直接从exe运行时,程序的行为会有所不同 我注意到,调试器不会出现这两个问题,但在从exe运行时确实会出现这两个问题: 使用剩余宽度的DataGrid列只显示该列容纳数据的最小宽度 Page加载的事件只是偶尔触发。这似乎受到显示页面时所做工作量的影响。就像如果有太多的工作,它只是不麻烦启动事件 还有谁有这个或者知道为什么吗 更多关于这个的信息。我
ex
e运行时,程序的行为会有所不同
我注意到,调试器不会出现这两个问题,但在从exe
运行时确实会出现这两个问题:
DataGrid
列只显示该列容纳数据的最小宽度加载的
事件只是偶尔触发。这似乎受到显示页面时所做工作量的影响。就像如果有太多的工作,它只是不麻烦启动事件更多关于这个的信息。我发现它总是触发页面加载事件,但这是在我订阅它之前发生的
这意味着在调试过程中,事情以不同的速度发生,导致事情以不同的顺序发生-竞争条件。他们在4.7中引入了一种新的分配算法,以防止在某些情况下,在
网格
的布局过程中出现无限循环。有关更多信息,请参阅
您可以通过向App.config
文件添加一个开关来禁用新算法:
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=true" />
</runtime>
您是否使用相同的配置(调试、发布?)运行exe?Microsoft修复了问题,但这并不意味着他们没有创建新的问题。在没有VS的情况下,您是否会遇到同样的问题?新版本的VS使用了更多的资源,这可能就是问题2出现的原因。奇怪的是,如果相同的问题只是在没有VS的情况下运行exe,那么在调试速度较慢的情况下,您会看到较少的资源冲突,或者调试速度较慢,因此B需要足够长的时间,以便A在准备就绪之前完成,但在发布版本下,它的优化程度更高,B可以在A完成之前完成。。