簡體   English   中英

OnRender(DrawingContext drawingContext) C#

[英]OnRender(DrawingContext drawingContext) C#

我在 C# 的裝飾器 class 中覆蓋 OnRender(DrawingContext drawingContext)

在這個方法中,我試圖繪制存儲在我的 imageCache 字典中的圖像。 問題是在將我的圖像存儲在字典中的線程完成之前調用 OnRender 方法。

我嘗試了 Thread.Sleep(60) 這可行,但我的程序變得非常慢。

你們能給我一些想法,我可以如何解決這個問題。

謝謝你。

您是否將在字典中存儲圖像的線程運行一次? 如果是這樣,我建議您在圖像存儲線程完成之前不要在OnRender中執行任何操作。

但是,如果您的圖像存儲線程在每次渲染時運行或頻繁運行,您可能需要實現一些線程同步(當然,您也需要它來處理第一種情況)。 例如,您可以引用帶有舊圖像的字典以進行渲染,然后在您的工作線程構建新字典后,您可以使用lock並為該引用分配一個新字典。

(這就是我可以用很少的輸入提出的全部建議)

您可以使用 Mutex 鎖定和同步線程。

private static Mutex mut = new Mutex();

然后你可以通過使用鎖定和釋放你想要的方法

mut.WaitOne();
mut.ReleaseMutex();

這是MSDN教程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM