Прочитать значение, которым манипулируют в другом потоке - PullRequest
0 голосов
/ 15 апреля 2010

Я пытаюсь прочитать статическое свойство из статического класса, который изменяется из другого потока.

В основном у меня есть этот статический класс:

public static class Progress{
     public static int currentProgress{get; set;}
}

и этот поток манипулирует currentProgress:

private void Job(){
    for(int i = 0; i<100; i++){
         Progress.currentProgress = i;
         Thread.Sleep(1000);
    }
}

Пока это работает, у меня есть HttpHandler, пытающийся получить доступ к этому прогрессу (каждые несколько секунд), например так:

public void ProcessRequest(HttpContext context) {
    context.Response.Write(Progress.currentProgress.toString());
    context.Response.End();
}

Но для currentProgress задано его начальное значение, в то время как workThread работает, и только когда выполнено обновление currentProgress.

Я понимаю, что это, вероятно, вопрос синхронизации потоков, но я не могу найти самый простой способ сделать это. Помогите пожалуйста;)

1 Ответ

1 голос
/ 15 апреля 2010

Первый шаг - объявить ваше статическое значение как изменчивое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...