Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在web服务中实现线程?_C#_Multithreading_Web Services - Fatal编程技术网

C# 如何在web服务中实现线程?

C# 如何在web服务中实现线程?,c#,multithreading,web-services,C#,Multithreading,Web Services,我需要在我的web服务中创建一个线程,以便在每个特定时间检查数据库中的一些数据。我不会这样做。线程将随应用程序池一起消亡。创建一个windows服务,它使用线程或计时器检查数据库为什么要这样做 如果您的服务是每次调用(即不是单例),那么服务请求所涉及的所有资源都应该在调用后立即释放。如果生成一个线程,请求将保持活动状态,直到线程完成 此外,定期检查数据库中的数据在web服务调用中并没有实际意义,无论如何,web服务调用应该在很短的时间内完成,否则会破坏可伸缩性 您可能指的是单例web服务,即单服

我需要在我的web服务中创建一个线程,以便在每个特定时间检查数据库中的一些数据。

我不会这样做。线程将随应用程序池一起消亡。创建一个windows服务,它使用
线程
计时器检查数据库

为什么要这样做

如果您的服务是每次调用(即不是单例),那么服务请求所涉及的所有资源都应该在调用后立即释放。如果生成一个线程,请求将保持活动状态,直到线程完成

此外,定期检查数据库中的数据在web服务调用中并没有实际意义,无论如何,web服务调用应该在很短的时间内完成,否则会破坏可伸缩性

您可能指的是单例web服务,即单服务器对象服务请求。在这种情况下,您需要首先创建singleton对象——很可能是在自动启动的Windows服务中


您的数据库轮询最有可能用于缓存某些常用值,以便服务请求不需要访问数据库本身。在这种情况下,您的服务实际上是一个中间层。除非您知道数据库中的数据非常频繁地发生变化,所以请考虑在调用Web服务的数据库中用数据库中的触发器替换数据库轮询来更新新数据。我建议只创建一个控制台应用程序,并在Windows中作为计划任务运行它。我一直这样做,很少使用服务。在没有服务的情况下开发和部署要容易得多:-)我需要我的web服务每5分钟检查一次数据库,然后通过TCP将数据发送到c#client,并且中的数据库只能从该web访问service@ToDayIsNow,你的问题似乎没有反映出你真正想问什么。请更新您的问题。Web服务是无状态的。没有开放的连接可以让你在5分钟内发回东西。