2016-09-16 39 views
0

我有下面的擴展方法。我傳遞所有的值作爲參數。我想知道,如果這個方法可以通過多個線程訪問它是否是線程安全的方法。這是通用的擴展方法線程安全的日誌記錄?

public static string ConcatLogKeyWithExceptionMessage<T>(this T entity, string configuredLogKeys, bool logOnlySingleKey, string exceptionMessage, bool firstInvocation = true, StringBuilder logKeyBuilder = null, string[] configuredKeysArray = null) where T : class 
    { 
    } 

如果您需要更多信息,請讓我知道

回答

0

線程安全是一個約當多個線程同時訪問數據的行爲表示關切。當說一個方法是線程安全的,這意味着或者方法內容是關心同步訪問非線程安全的數據結構;用該方法操作的數據結構本質上是線程安全的;或兩者。

如果您的方法是線程安全的,將取決於您正在操作的T entity的成員是否是線程安全的。 StringBuilder,數組以及任何通過引用傳遞的內容都是相同的。如果該方法是pure function,那麼可以說它是線程安全的。但是,如果該方法在任何參數中引起副作用,則取決於如何執行這些更改。