C# 从webservice获取计数

C# 从webservice获取计数,c#,web-services,C#,Web Services,我正在VS2010中开发一个解决方案,涉及2个项目。第一个项目是一个普通的windows窗体应用程序,它带有一个按钮,每当按下该按钮时,该按钮都会递增一个整数变量。另一个项目是一个简单的web服务,它返回变量的值。我已将计数器设置为公共和静态,如下所示: public static int count = 0; private void AddCountButton_Click(object sender, EventArgs e) { count++; } public stati

我正在VS2010中开发一个解决方案,涉及2个项目。第一个项目是一个普通的windows窗体应用程序,它带有一个按钮,每当按下该按钮时,该按钮都会递增一个整数变量。另一个项目是一个简单的web服务,它返回变量的值。我已将计数器设置为公共和静态,如下所示:

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。我希望有人能对这个问题有所了解。谢谢,祝您愉快。

您的两个项目以两个不同的流程运行。一个作为windows窗体,另一个作为web进程。MyApplication.Form1中定义的计数不在这两个进程之间共享


@约翰,谢谢你

你的两个项目是作为两个不同的流程运行的。一个作为windows窗体,另一个作为web进程。MyApplication.Form1中定义的计数在这两个进程之间不共享。@董:你应该把它写下来作为答案。你(swift)为什么还要使用ASMX web服务?这是一项遗留技术,不应该用于新的开发。这是我唯一熟悉的东西。我读了一些关于RESTWeb服务的文章,但我决定坚持我所知道的。这只是用于一个简单的项目,没有我打算分发给公众的东西。我只需要展示一个概念证明。你知道我是如何做到这一点的吗?这对我正在努力实现的目标至关重要。我不认为在web服务器的背景下有多个计算密集的工作线程是很好的做法。嘿,斯威夫特,你在计算什么,你的计数的期望寿命是多少?依赖作为web服务一部分存在的静态变量可能对大多数项目都不起作用,因为一旦工作进程被回收,该值就会消失。您可能希望将该值存储在其他地方,并使用web服务作为设置/获取count的一种方式。基本上,处理count的流程会在每次循环迭代中递增count。Web服务的存在是为了让用户能够及时获得count的值。web服务中没有工作进程。当有人关闭并重新打开您的winform时,是否希望计数为以前的值?如果是这样,您需要将该数据持久化到某个位置,最好是您的web服务也可以访问的位置。如果数据库只存储一个值,那就太过分了。你可以让你的winform将值写入一个文件,然后让你的web服务从文件中读取这个值。是的,这个解决方案确实出现在我的脑海中,但我认为即使这样也太过分了,毕竟它只是一个简单的整数。我认为web服务可以访问winform的内存部分并从中检索整数的值,但我认为这会造成不必要的复杂情况,例如竞争条件。好的@Tung,谢谢你的投入。你帮了大忙。