Расположение упаковки и байт, как описано в C FAQ здесь :
Это для выравнивания. Многие процессоры не могут получить доступ к 2- и 4-байтным количествам (например, ints и long ints), если они переполнены каждым способом.
Предположим, что у вас есть эта структура:
struct { char a[3]; short int b; long int c; char d[3]; };
Теперь вы можете подумать, что это возможно, чтобы упаковать эту структуру в память следующим образом:
+-------+-------+-------+-------+ | a | b | +-------+-------+-------+-------+ | b | c | +-------+-------+-------+-------+ | c | d | +-------+-------+-------+-------+
Но на процессоре намного проще, если компилятор упорядочивает его как это:
+-------+-------+-------+ | a | +-------+-------+-------+ | b | +-------+-------+-------+-------+ | c | +-------+-------+-------+-------+ | d | +-------+-------+-------+
В упакованной версии обратите внимание на то, что вам и мне, как минимум, немного сложно понять, как обтекают поля b и c? В двух словах, это тоже сложно для процессора. Поэтому большинство компиляторов будут заполнять структуру (как будто с дополнительными невидимыми полями) следующим образом:
blockquote>+-------+-------+-------+-------+ | a | pad1 | +-------+-------+-------+-------+ | b | pad2 | +-------+-------+-------+-------+ | c | +-------+-------+-------+-------+ | d | pad3 | +-------+-------+-------+-------+
Попытайтесь удалить безграничное поведение своего окна и посмотрите, помогает ли это. Кроме того, Вы - BeginInvoke () 'луг или Вызываете () 'луг какие-либо длительные операции?
Другая вещь посмотреть на: при вторжении в код попытайтесь смотреть на потоки кроме основного потока. Один из них может блокировать поток UI.
Один большой инструмент является Ищейкой. Действительно хороший для взгляда на то, какие объекты WPF отображены на визуальном дереве в установленный срок. Я не уверен, какому количеству это поможет, но возможно, что Вы создаете затор поток UI с большим количеством дополнительных вещей, которые это должно сделать. Ищейка может помогать Вам разыскать то, что находится на экране для давания Вам общее представление, что искать.
Я удалил безграничное поведение, как предложил Bob King. До настоящего времени это, кажется, избавилось от проблемы.
Теперь вопрос, почему и как я могу устранить проблему? Продукт разработан, чтобы не иметь никакой границы с некоторыми скругленными углами и прозрачными частями.
Ваше приложение WPF могло зависать из-за проблем производительности. Попытайтесь использовать Перфоратор, чтобы видеть, есть ли у Вас какие-либо части, которые являются представленным программным обеспечением или если Вы приложение используете слишком много видеопамяти.
Ура, ... похоже, проблема не связана с окнами без полей (по крайней мере, в моем случае).
При установке производительность сильно падает. Позволяет прозрачности
иметь значение true. Может показаться, что все это может привести к зависанию потока пользовательского интерфейса. Очень странное поведение. Может быть связано с этот билет