2012-03-02 3 views
1

Я разрабатываю решение в VS2010, которое включает в себя 2 проекта. Первый проект - это обычное приложение с формой окна с кнопкой, которая при каждом нажатии увеличивает целочисленную переменную. Другой проект - это простая веб-служба, которая возвращает значение переменной. Я установил счетчик, как государственные и статическими следующим образом:Получить счет от webservice

public static int count = 0; 

private void AddCountButton_Click(object sender, EventArgs e) 
{ 
    count++; 
} 

public static int GetCount() 
{ 
    return count; 
} 

Другой проект имеет этот метод:

[WebMethod] 
public int GetCount() 
{ 
    return MyApplication.Form1.GetCount(); 
} 

Однако, когда вышеупомянутый метод называется он всегда возвращает 0. Я надеялся, что кто-то прольет свет на эту тему. Спасибо и хорошего дня.

+3

Ваши два проекта работают как два разных процесса. Один - как форма окна, а другой - как веб-процесс. Счет, определенный в вашем MyApplication.Form1, не разделяется между этими двумя процессами. – Tung

+0

@Tung: вы должны написать это как ответ. –

+1

Почему вы (быстро) используете веб-службы ASMX? Это устаревшая технология и не должна использоваться для новой разработки. –

ответ

3

Ваши два проекта работают как два разных процесса. Один - как форма окна, а другой - как веб-процесс. Счет, определенный в вашем MyApplication.Form1, не разделяется между этими двумя процессами.

@John, спасибо

+0

Любая идея, как я могу это сделать? Это очень важно для того, чего я пытаюсь достичь. Я не думаю, что очень хорошая практика состоит в том, чтобы иметь несколько рабочих потоков, которые достаточно интенсивно вычисляются на фоне веб-сервера. –

+0

Эй, Swift, что вы вычисляете, и какова желаемая продолжительность вашего ** счета **? Опираясь на статическую переменную, которая существует как часть веб-службы, вероятно, не будет работать для большинства проектов, поскольку значение будет уходить после того, как рабочий процесс будет переработан. Возможно, вы захотите сохранить значение в другом месте и использовать веб-службу как способ установки/получения счета – Tung

+0

. В принципе, процесс, который работает с ** count **, увеличивает его с каждой итерацией цикла. Веб-сервис существует, чтобы пользователи могли получить значение ** count ** в этот момент времени. В веб-службе нет работников. –

Смежные вопросы