Я работаю над пользовательским элементом WPF Framework, который записывает в WriteableBitmap, а затем отображает растровое изображение в элементах OnRender().
Поскольку запись в WriteableBitmap может быть немного медленно (из-за алгоритма, который я вычисляю в этот момент) и того факта, что мне нужно отобразить 36 таких элементов, я хочу выполнить работу по обновлению WriteableBitmap в фоновом потоке.
Итак, я придумал следующее, что значительно повышает производительность. Проблема в том, что все работает нормально, если я создаю только 8 или меньше таких элементов, но если я создаю еще, например, запрошенные 36, при изменении размера окна у меня появляется мерцание на всех элементах, кроме первых 8?
Есть идеи, что может быть причиной этого?
Элемент рендеринга:
public class Renderer : FrameworkElement
{
private WriteableBitmap? _bitmap, _previousBitmap;
private long _pBackBuffer = 0;
private int _backBufferStride = 0, _backBufferWidth = 0, _backBufferHeight = 0;
private SemaphoreSlim _semaphore = new(1, 1);
private void ResizeBitmap()
{
int width = (int)ActualWidth;
int height = (int)ActualHeight;
if (width
{
_semaphore.Wait();
unsafe
{
int* pPointer = (int*)_pBackBuffer;
int stride = _backBufferStride / 4;
// simulate slowness
Thread.Sleep(10);
// render a gradient for demo purposes
for (int i = 0; i < _backBufferHeight; ++i)
{
byte x = (byte)(255d / _backBufferHeight * i);
for (int j = 0; j < _backBufferWidth; ++j)
{
pPointer[i * stride + j] = 255
Подробнее здесь: https://stackoverflow.com/questions/784 ... es-flicker
Отложенная запись WriteableBitmap в фоновом потоке вызывает мерцание ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обновление привязки текста списка вызывает мерцание на iOS с помощью Xamarin.Forms
Anonymous » » в форуме IOS - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Iframe Изменение размера вызывает мерцание при использовании различного происхождения
Anonymous » » в форуме Html - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-