我有一個服務器類,在接受TcpClient後,引發一個事件,其主要任務是讓用戶定義的對象傳遞到屬於TcpClient的線程中。例如C#如何確保用戶提供線程安全對象的功能
public class MyData : UserData {}
public GetUserDataEventArg : CancelEventArg { UserData Data { get; set; } }
public class Server { public event EventHandler<GetUserDataEventArg> GetUserData = null; }
// intended usage, each thread has its own data.
public void GetUserDataEventHandler1(object sender, GetUserDataEventArg e) { e.Data = new MyData(); }
// dangerous usage, shared member data may not have thread safety implemented.
public void GetUserDataEventHandler2(object sender, GetUserDataEventArg e) { e.Data = m_myData; }
如何確保使用是線程安全的?其他實現相同目標的實現也受到歡迎。提前致謝。