Есть такой код
и лок тут служит для последовательной эмуляции мыши.
Знаю, что методы SyncObjects.ListSyncer и подобные берутся из Global.dll и являются глобальными для потоков и проектов. Но если lock используется для блокировки списка созданного в пределах снипета, то он не станет глобальным и не будет влиять на другие потоки?
lock:
List<Action> actions = new List<Action>(){() => Emulation.FullEmulRead(project, instance, instance.ActiveTab.FindElementByAttribute("div", "class", "name", "regexp", 0), 70, 500, 100, 600),
() => Emulation.FullEmulRead(project, instance, instance.ActiveTab.FindElementByAttribute("h1", "class", "title", "regexp", 0), 70, 500, 100, 600)};
Random rand = new Random();
System.Threading.Tasks.Parallel.For(0, 2, p => {
Thread.Sleep(rand.Next(10, 100));
lock(actions) actions[p].Invoke();
});
Знаю, что методы SyncObjects.ListSyncer и подобные берутся из Global.dll и являются глобальными для потоков и проектов. Но если lock используется для блокировки списка созданного в пределах снипета, то он не станет глобальным и не будет влиять на другие потоки?