multithreading - C# Thread safe code -


is code thread safe?

dostuff called in 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 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;     } } 

is code thread safe?

yes, is. code doesn't use shared state. definition code doesn't uses shared state thread-safe.

you can call dostuff concurrently in number of threads without problem. said, dostuff method isn't useful though.


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -