using System.Threading.Tasks;
public int Value {get; set;}
public static void Main()
var obj = new Obj(){Value =8 };
Console.WriteLine("Before: " + obj.Value);
Console.WriteLine("Starting task");
var task = Task.Factory.StartNew(()=>SendMessage(obj));
Console.WriteLine("Changing value");
Console.WriteLine("After: " + obj.Value);
public static void Change(Obj obj)
public static void SendMessage(Obj obj)
Console.WriteLine("Inside Send: " + obj.Value);