using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
namespace TestSyncMethodAttr
{
class SyncHelper
{
[MethodImpl(MethodImplOptions.Synchronized)]
public void Execute()
{
Console.WriteLine( "Thread Name:{1},Excute at {0}", DateTime.Now,Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(5000);
}
//[MethodImpl(MethodImplOptions.Synchronized)]
public void ExecuteAnother()
{
Console.WriteLine("Thread Name:{1},Excute Another at {0}", DateTime.Now, Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
}
}
delegate int del(int i);
class Program
{
static void Main(string[] args)
{
SyncHelper helper = new SyncHelper();
TimerCallback func = (obj) => {
helper.Execute();
};
TimerCallback funcAnother = (obj) =>
{
helper.ExecuteAnother();
};
Timer timer = new Timer(func, null, 0, 1000);
Timer timerAnother = new Timer(funcAnother, null, 0, 1000);
/*
Expression<del> myET = x => x * x;
Console.WriteLine(myET.Compile().Invoke(2));
*/
/*
Timer timer = new Timer(
delegate
{
helper.Execute();
}, null, 0, 1000);
*/
Console.Read();
}
}
}