WriteableBitmap.Unlock Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Arka arabelleğinden çıkararak görüntüleme için kullanılabilir hale getirir.
public:
void Unlock();
[System.Security.SecurityCritical]
public void Unlock();
public void Unlock();
[<System.Security.SecurityCritical>]
member this.Unlock : unit -> unit
member this.Unlock : unit -> unit
Public Sub Unlock ()
- Öznitelikler
Özel durumlar
Bit eşlem, veya Lock() yöntemlerine TryLock(Duration) yapılan bir çağrı tarafından kilitlenmedi.
Örnekler
Aşağıdaki kod örneği, yöntemini kullanarak geri arabelleğin nasıl serbest bırakılmasını Unlock gösterir.
// The DrawPixel method updates the WriteableBitmap by using
// unsafe code to write a pixel into the back buffer.
static void DrawPixel(MouseEventArgs e)
{
int column = (int)e.GetPosition(i).X;
int row = (int)e.GetPosition(i).Y;
try{
// Reserve the back buffer for updates.
writeableBitmap.Lock();
unsafe
{
// Get a pointer to the back buffer.
IntPtr pBackBuffer = writeableBitmap.BackBuffer;
// Find the address of the pixel to draw.
pBackBuffer += row * writeableBitmap.BackBufferStride;
pBackBuffer += column * 4;
// Compute the pixel's color.
int color_data = 255 << 16; // R
color_data |= 128 << 8; // G
color_data |= 255 << 0; // B
// Assign the color data to the pixel.
*((int*) pBackBuffer) = color_data;
}
// Specify the area of the bitmap that changed.
writeableBitmap.AddDirtyRect(new Int32Rect(column, row, 1, 1));
}
finally{
// Release the back buffer and make it available for display.
writeableBitmap.Unlock();
}
}
Açıklamalar
Unlock yöntemi, kilit sayısını azaltmaya devam eder. Kilit sayısı 0'a ulaştığında, yöntem çağrıldığında AddDirtyRect bir işleme geçişi istenir.