Не могу понять, в чем прикол. Объясните кто шарит, почему так происходит.
Общий код:
Кубик c#:
Меня смущает вот такой результат (это в один поток):
static переменные общие для всех потоков(поправьте, если не прав). но почему при выполнении в 1 поток после завершения работы следующий всё равно видит переменную со значением 10?
Общий код:
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
using ZennoLab.CommandCenter.TouchEvents;
using ZennoLab.CommandCenter.FullEmulation;
using ZennoLab.InterfacesLibrary.Enums;
namespace ZennoLab.OwnCode
{
/// <summary>
/// A simple class of the common code
/// </summary>
public class CommonCode
{
/// <summary>
/// Lock this object to mark part of code for single thread execution
/// </summary>
public static object SyncObject = new object();
public static int bla = 1;
public static void meth(IZennoPosterProjectModel project, Instance instance)
{
project.SendInfoToLog("значение переменной bla - " + bla.ToString(), true);
Thread.Sleep(3000);
bla = 10;
}
// Insert your code here
}
}
C#:
CommonCode.meth(project, instance);
static переменные общие для всех потоков(поправьте, если не прав). но почему при выполнении в 1 поток после завершения работы следующий всё равно видит переменную со значением 10?