using System;
using System.Threading;
public class Test
{
static void Main(string[] args)
{
ThreadManager.CurrentSession = 0;
for (int i = 0; i < 10; i++)
{
CreateWork objCreateWork = new CreateWork();
ThreadStart start = new ThreadStart(objCreateWork.ProcessQuickPLan);
new Thread(start).Start();
}
Console.ReadLine();
}
class CreateWork
{
private object CurrentSession = -1;
private static object SessionLock = -1;
public void ProcessQuickPLan()
{
lock (SessionLock)
{
CurrentSession = ThreadManager.CurrentSession;
Console.WriteLine(CurrentSession);
ThreadManager.CurrentSession = Convert.ToInt32(ThreadManager.CurrentSession) + 1;
}
}
}
class ThreadManager
{
public static object CurrentSession
{
get;
set;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nOwoKcHVibGljIGNsYXNzIFRlc3QKewoJCXN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIFRocmVhZE1hbmFnZXIuQ3VycmVudFNlc3Npb24gPSAwOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmsgb2JqQ3JlYXRlV29yayA9IG5ldyBDcmVhdGVXb3JrKCk7CiAgICAgICAgICAgICAgICBUaHJlYWRTdGFydCBzdGFydCA9IG5ldyBUaHJlYWRTdGFydChvYmpDcmVhdGVXb3JrLlByb2Nlc3NRdWlja1BMYW4pOwogICAgICAgICAgICAgICAgbmV3IFRocmVhZChzdGFydCkuU3RhcnQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBDb25zb2xlLlJlYWRMaW5lKCk7CiAgICAgICAgfQogICAgCiAgICAgICAgY2xhc3MgQ3JlYXRlV29yawogICAgewogICAgICAgIHByaXZhdGUgb2JqZWN0IEN1cnJlbnRTZXNzaW9uID0gLTE7CiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgb2JqZWN0IFNlc3Npb25Mb2NrID0gLTE7CiAgICAgICAgcHVibGljIHZvaWQgUHJvY2Vzc1F1aWNrUExhbigpCiAgICAgICAgewogICAgICAgICAgICBsb2NrIChTZXNzaW9uTG9jaykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3VycmVudFNlc3Npb24gPSBUaHJlYWRNYW5hZ2VyLkN1cnJlbnRTZXNzaW9uOwogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ3VycmVudFNlc3Npb24pOwogICAgICAgICAgICAgICAgVGhyZWFkTWFuYWdlci5DdXJyZW50U2Vzc2lvbiA9IENvbnZlcnQuVG9JbnQzMihUaHJlYWRNYW5hZ2VyLkN1cnJlbnRTZXNzaW9uKSArIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgY2xhc3MgVGhyZWFkTWFuYWdlcgogICAgewogICAgICAgIHB1YmxpYyBzdGF0aWMgb2JqZWN0IEN1cnJlbnRTZXNzaW9uCiAgICAgICAgewogICAgICAgICAgICBnZXQ7CiAgICAgICAgICAgIHNldDsKICAgICAgICB9CiAgICB9Cgp9