設計根據標示符全域性只執行一次的類

2021-09-06 17:26:31 字數 1434 閱讀 4082

設計根據標示符全域性只執行一次的類

全域性只執行一次的**,第乙個想到的絕對是dispatch_once,這是不二的選擇嘛,dispatch_once還是執行緒安全的.

這裡我將提供一種非執行緒安全但也可以使用的全域性只執行一次的**,設計很簡單:

現在提供類如下:

staticflag.h   +   staticflag.m

//

//static

////

//#import

typedef

void (^staticflagblock)();

@inte***ce

staticflag : nsobject

+ (void)flag:(nsstring *)flag

class

:(class)objectclass

firsttime:(staticflagblock)firsttime

othertimes:(staticflagblock)othertimes;

@end

//

//static

////

//#import

"staticflag.h

"static nsmutabledictionary *flagdictionary =nil;

@implementation

staticflag

+ (void

)initialize

}+ (void)flag:(nsstring *)flag

class

:(class)objectclass

firsttime:(staticflagblock)firsttime

othertimes:(staticflagblock)othertimes

else

}@end

使用情況:

setInterval只執行一次?

遇到的問題 setinterval函式只呼叫了一次?例項化vue物件 newvue created methods 看setinterval文件 這裡的執行函式只是乙個函式體內容,執行與否是與後面的millseconds有關,如果這裡使用括號呼叫 如上述setinterval this.test 1...

Windows讓程式只執行一次

一 通過建立互斥量來判斷 winapi winmain hinstance,hinstance,lpstr,int if getlasterror error already exists catch exception exception return 0 二 用系統原子 winapi winma...

Quartz中Job只執行一次

quartz中job只執行一次 參考 url 目的是讓前台使用者不等待執行完,悄悄地在後台執行 下面是1秒鐘後立即執行,並且只執行一次。trigger trigger triggerbuilder.newtrigger withidentity trigger3 group1 startat new...