前段时间做一个项目.遇到一个问题.一个网站放在服务器上.同时服务器上运行一个C#应用程序.想实现的功能是用户访问网站.向数据库里写一条数据(sql server),然后应用程序接着处理这条数据.然后返回给用户
实现思路有二个:
1.用timer.因为实时性要求高.所以必须是每秒读一次,timer设置成:timer1.Interval = 1000;
但是发现这样不是我要的主动式触发.缺点是效率不高.浪费资源.每秒读一次数据库.检查是否有新的未处理数据.如果数据量庞大的话.可见缺点是很大的
2.后来用fileSystemWatcher+sql sever触发器完善解决这一问题
首先.在sql server表里建触发.触发的时候往一个特定目录下的txt文本里修改数据.这样.fileSystemWatcher只捕获这个特定文本的变动.一变动马上触发.然后你就可以在
private
void
fileSystemWatcher1_Changed(
object
sender, System.IO.FileSystemEventArgs e)
{
//这里是你处理的代码
}
{
//这里是你处理的代码
}
不知道各位明白了吗.大致思路就是这样.实现了服务器端应用程序和网页进行通信的可能