Take the following examples:
List<MyObject> objects = new List<MyObject();
Example #1:
static class MyClass1
{
static void MyMember(List<MyObject> objects) { objects.Add(new MyObject); }
}
Example #2:
class MyClass2
{
void MyMember(List<MyObject> objects) { objects.Add(new MyObject); }
}
Example #3:
static MyClass3 myClass3 = new MyClass3();
class MyClass3
{
void MyMember(List<MyObject> objects) { objects.Add(new MyObject); }
}
and then calling
Task.Factory.StartNew(() =>
{
MyClass1.MyMember(objects);
});
or
MyClass2 myClass2 = new MyClass2();
Task.Factory.StartNew(() =>
{
myClass2.MyMember(objects);
});
or
static MyClass3 myClass3 = new MyClass3();
Task.Factory.StartNew(() =>
{
myClass3.MyMember(objects);
});
Assuming that the application will only have one of these examples, and that the Task
is called multiple times simultaneously.
You could think of this as a console app where List<MyObject> objects
is instantiated in the Main()
, same goes for the tasks, called in Main()
multiple times simultaneously.