int timeOut = 30; // таймаут, сек
lock (SyncObject) {
try {
var tickCount = project.GlobalVariables["MyNameSpace", "TickCount"];
if (tickCount.Value.ToString() == string.Empty) {
project.GlobalVariables.SetVariable("MyNameSpace", "TickCount", Environment.TickCount);
return "ok";
}
if (tickCount.Value + timeOut * 1000 > Environment.TickCount)
Thread.Sleep(timeOut * 1000);
project.GlobalVariables.SetVariable("MyNameSpace", "TickCount", Environment.TickCount);
}
catch (KeyNotFoundException ex) {
project.GlobalVariables.SetVariable("MyNameSpace", "TickCount", Environment.TickCount);
}
}