我試圖解決一個問題,我可以看到我的iDevice,但不是在我的Mac(顯然)。用'dataWithData` +非阻塞線程的高CPU活動
我已經標在這條線非常高的CPU活動:
data = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0)];
這似乎當我下載和顯示高清畫面(4-5Mo)。
我的代碼有什麼問題,或者我正在做一些非常糟糕的事情?
編輯 最後這條線並不重要。我的問題是我認爲我的異步方法在另一個線程中。事實並非如此。
我開始思考新線程:
[NSThread detachNewThreadSelector:@selector(test:) toTarget:self withObject:myObject];
對於我的問題,是它做的最好方法是什麼?
謝謝你的幫助。
一切都背景明顯,但我擔心此操作正在進行的時間。我不知道這個行動的平均持續時間。你有這方面的參考嗎?也許存在一個數學函數來根據圖片的大小/分辨率計算治療的持續時間? 如果我可以預測持續時間,我可以根據需要調整圖片的大小。 – BriceB
你在想這個。 JPEG壓縮是CPU密集型的。如果您使用GCD在後臺執行工作,則不會阻止用戶界面。讓它運行。 –
我發現了我的問題的一部分。我認爲asynchrone下載是在另一個線程上,但最後不是。我試着用'NSThread' detachNewThreadSelector:toTarget:withObject:'來做到這一點,但我無法阻止它。這意味着我每次打電話給我的方法都會有新的泄漏。 – BriceB