[英]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.