Is this code thread safe?
DoStuff
is called in a new thread using Task.
Task.Factory.StartNew(() => DoStuff());
private void DoStuff()
{
List<SalesRecord> salesRecords = new List<SalesRecord>();
SalesRecord salesRecord1 = new SalesRecord {Amount = 10.0, Sales = 1};
SalesRecord salesRecord2 = new SalesRecord {Amount = 15.0, Sales = 1};
SalesRecord salesRecord3 = new SalesRecord {Amount = 1.0, Sales = 2};
salesRecords.Add(salesRecord1);
salesRecords.Add(salesRecord2);
salesRecords.Add(salesRecord3);
SalesRecord result = Util.SumSales(salesRecords);
}
A struct just to store data:
public struct SalesRecord
{
public uint Sales;
public double Amount;
}
stuff
public static class Util
{
public static SalesRecord SumSales(List<SalesRecord> records)
{
SalesRecord result = new SalesRecord();
result.Amount = records.FindAll(record => (record.Sales == 1)).Sum(record => record.Amount);
result.Sales = 1;
return result;
}
}