Sind statische Variablen fadensicher? C#C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Sind statische Variablen fadensicher? C#

Post by Anonymous »

Ich möchte eine Klasse erstellen, die Datentable speichert. Dadurch wird meine Anwendung beim Importieren einer Liste von Details bei jedem Abruf importiert. Daher sollte dies einmal erfolgen. Ich glaube, dass der folgende Code dies tut, aber ich bin mir nicht sicher, ob es sich um thread-safe handelt.

Code: Select all

public class BusinessLayerHandler
{
public static DataTable unitTable;
public static DataTable currencyTable;

public static DataTable GetUnitList()
{
//import lists each time the application is run
unitTable = null;
if (unitTable == null)
{
return unitTable = DatabaseHandler.GetUnitList();
}
else
{
return unitTable;
}
}

public static DataTable GetCurrencyList()
{
//import lists each time the application is run
currencyTable = null;
if (currencyTable == null)
{
return currencyTable = DatabaseHandler.GetCurrencyList();
}
else
{
return currencyTable;
}
}
< /code>

Jede Hilfe wird geschätzt, wenn es einen besseren Weg gibt, wie ein DataTable -Data -ATATEBLE -APPERSPRIEBEN wird.public class BusinessLayerHandler
{
private static DataTable unitTable;
private static DataTable currencyTable;

private static readonly object unitTableLock = new object();
private static readonly object currencyTableLock = new object();

public static DataTable GetUnitList()
{
//import lists each time the application is run
//unitTable = null;

lock (unitTableLock)
{
if (unitTable == null)
{
return unitTable = DatabaseHandler.GetUnitList();
}
}
return unitTable;
}

public static DataTable GetCurrencyList()
{
//import lists each time the application is run
lock (currencyTableLock)
{
if (currencyTable == null)
{
return currencyTable = DatabaseHandler.GetCurrencyList();
}
}
return currencyTable;
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post