2012-03-22 36 views
1

我正在爲應用程序雜誌製作ipad應用程序。 現在我正在使用ScrollView,並且想要加載許多1024 * 768圖像(大約100張圖像),(如您所知,如果所有圖像一次加載,這是不可能的。) 因此我只加載5頁(當前頁& 2前頁& 2下一頁)並刪除其他頁面。使用dispatch_sync和在線編寫代碼(非塊沒有dispatch_sync)有什麼區別嗎?

但是,我有一個問題。

我做了加載頁面的方法('loadTitlePage'),我不得不調用這個方法,當我想加載所有頁面。 所以,我不能使用dispatch_async而是dispatch_sync。

使用dispatch_sync和在線寫入代碼(非塊沒有dispatch_sync)有什麼區別?

這是我的代碼。

[self loadTitlePage:currentPageNo]; 
dispatch_queue_t dqueue = dispatch_queue_create("scrollLoadTitlePage", NULL); 
dispatch_sync(dqueue, ^{ 
    [self loadTitlePage:currentPageNo-2]; }); 
dispatch_sync(dqueue, ^{ 
    [self loadTitlePage:currentPageNo-1]; }); 
dispatch_sync(dqueue, ^{ 
    [self loadTitlePage:currentPageNo+1]; }); 
dispatch_sync(dqueue, ^{ 
    [self loadTitlePage:currentPageNo+2]; }); 
dispatch_sync(dqueue, ^{ 
    [self removeTitlePage:currentPageNo-3 withNo:currentPageNo+3]; }); 

回答

1

你可以在這裏閱讀:using dispatch_sync in Grand Central Dispatch

總之.. dispatch_sync相當於一個互斥鎖..你的情況,我不認爲有任何區別

+0

非常感謝。我之前看過那個鏈接頁面。但我是編程初學者,所以有點困惑。謝謝您的回答 :) – ssongahlee 2012-03-22 12:50:57

相關問題