我有一个视图,需要以编程方式操作它的框架 - 它是一种包含其内容的文档视图,然后通过操作框架原点滚动并围绕超视图进行缩放.Autolayout在运行时与此斗争.
完全禁用自动布局似乎有点苛刻,因为它可以合理地用于处理其他视图的布局.看起来我可能想要的是某种"空约束".
任何时候我使用C#编辑|重构|重命名功能,应用更改都非常慢 - 比如30秒或更慢.有时在发生这种情况时会出现"更新文件"弹出窗口.
机器上的其他所有东西都快速响应.C++等价物也很好.还有其他人看到这个问题吗?有解决方案吗
编辑:
根据magicandre1981的建议,我运行了一个ETW跟踪.我还将VS调试器的另一个实例附加到我正在使用的实例上,以查看是否有任何有趣的东西.
我发现了两件有趣的事情:
减速是指数级的 - 最初它是快速的,但是你使用它的第10次它需要10秒,到第20次花费一分钟或更长时间.
在Delegate.Remove方法中抛出异常.(特别是在System.MulticastDelegate.RemoveImpl中.)所以我猜是有些东西被连接起来然后从未删除过.
基本上这个调用堆栈被击中了数千次:
mscorlib.dll!System.MulticastDelegate.DeleteFromInvocationList(object[] invocationList = {object[4096]}, int invocationCount = 3569, int deleteIndex, int deleteCount = 1)
mscorlib.dll!System.MulticastDelegate.RemoveImpl(System.Delegate value)
mscorlib.dll!System.Delegate.Remove(System.Delegate source, System.Delegate value)
Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.InlineRename.InlineRenameSession.OpenTextBufferManager.SpansChanged.remove(System.Action value = {Method = {System.Reflection.RuntimeMethodInfo}})
ETW跟踪和简单地使用调试器进入该调用堆栈.
所以...更多信息,但我还没弄明白为什么.
另一个编辑:
Aaand我刚刚做了我应该做的事情:禁用扩展程序以查看它是否有任何区别.果然性能问题就消失了.我将其缩小到特定的扩展名 - 我会联系作者,看看他们是否可以修复它.
我已经创建了一个UWP自定义(即模板化)控件.我如何使其可访问?
现在,当我尝试将它与Windows讲述人工具一起使用时,它的表现很差.有时讲述者根本看不到它,有时它会在我不想要的时候深入到我控制范围内的UI元素树中.
最初我认为我只需要设置一些自动附加属性,但它们没有明显的效果.
此代码无法编译.我得到"预期{或",指的是.(Xcode 5,所以它是一个相当完整的C++ 11编译器.)
有没有办法在构造函数初始化列表中初始化嵌套联合的成员,或者我只需要在构造函数体中执行它?
class Foo
{
public:
Foo(): m_bar.m_x(123) { }
private: // ^ error here
union
{
union
{
int m_x;
float m_y;
}
m_pod;
std::string m_name;
};
};
Run Code Online (Sandbox Code Playgroud)