1.線程本地存儲區的專用集合對象,並提供對每個邏輯執行線程都唯一的數據槽。
2.數據槽不在其他邏輯線程上的調用上下文之間共享。
class Program { static Jason_TestEntities Current { get { Jason_TestEntities dbContext = CallContext.LogicalGetData("CurrentContext") as Jason_TestEntities; if (dbContext == null) { Console.WriteLine("重新獲取DBContext" + Thread.CurrentThread.ManagedThreadId); dbContext = new Jason_TestEntities(); dbContext.Configuration.ValidateOnSaveEnabled = false; CallContext.LogicalSetData("CurrentContext", dbContext); } return dbContext; } } static void Main(string[] args) { for (int i = 0; i < 5; i++) { ThreadStart threadStart = new ThreadStart(select); Thread thread = new Thread(threadStart); thread.Start(); } Console.WriteLine("主線程結束"); Console.Read(); } static void select() { Console.WriteLine("線程開始" + Thread.CurrentThread.ManagedThreadId); Current.wolf_example.Add(new wolf_example() { Name = "name" + Current.wolf_example.Count(), Money = Current.wolf_example.Count(), }); Current.SaveChanges(); Console.WriteLine("線程結束" + Thread.CurrentThread.ManagedThreadId); } }