项目中需要使用一个定时器,按一定的时间间隔调用WCF服务从服务器端加载一些缓存到客户端。
C#中有三种定时器:
(1)Form中的那个;
(2)System.Threading中的那个;
(3)System.Timers中的那个;
我开始使用的是第二种,然后再定时器执行的回调函数中调用WCF服务,没想到导致我的定时器只能执行一次,此后便不再执行。
然后我换成第三种定时器,在其事件处理函数中调用WCF服务,就可以正确运行了。
至于原因,项目做完再研究吧。
================================== 慵懒的分割线 =================================================
另外今天要为另一个模块提供一个接口,完成的工作是创建一个线程,创建一个命名管道的服务器端,在死循环中一直等待来自客户端的命名管道连接,如果有客户端链 接过来,则接受其传来的一个界面ID,打开对应的界面。
因为打开界面是在死循环中做,而且我需要提供出一个接口,所以就想到让调用这个接口的人传一个回调函数进来,当循环中接收到客户端的连接以及传过来的界面ID之后,调用这个回调函数,然后接口使用者就可以在自己的回调函数中进行对应界面的打开操作了。
我参考了第二种定时器的回调函数的写法,很简单就实现了这个回调函数的功能。
如果你也要实现一个回调函数的功能,或者说做一个包含回调函数的接口,你也可以参考第二种定时器的回调函数的实现方式。
分享到:
相关推荐
6. **服务交互**:虽然服务默认不具有用户界面,但可以通过使用交互式服务检测(Interactive Service Detection)或自定义通信机制(如命名管道、WCF服务)使服务与用户界面交互。 现在,让我们看下压缩包中的"jwy...
创建一个Timer对象,设置其Interval属性为所需的关机时间(以毫秒为单位),然后在Elapsed事件处理程序中调用Shutdown函数,该函数来自System.Diagnostics命名空间的Process类,用于关闭计算机。 在描述中提到的...
3. **安装服务**:创建C#服务后,需要将其安装到Windows服务管理器中才能运行。这通常通过`InstallUtil.exe`工具或者在代码中使用`ServiceInstaller`类完成。安装服务时需要指定服务名称、显示名称、启动类型等属性...
虽然服务不直接与用户界面交互,但可以使用自定义接口(如WCF服务)或控制台应用程序来与服务通信,实现启动、停止、查询状态等功能。 综上所述,C# Windows服务是构建后台自动化任务的关键技术,它提供了可靠且可...
在C#中,我们使用`System.ServiceProcess`命名空间中的`ServiceBase`类作为基础,创建自定义的Windows服务。要创建一个新的服务,你需要继承`ServiceBase`类并覆盖`OnStart`方法,该方法在服务启动时被调用。例如: ...
在IT行业中,Google Map是一个广泛使用的地图服务,它提供了丰富的API和工具,允许开发者将其集成到Web应用中,实现各种定制化的地图功能。本话题主要关注如何使用JavaScript异步调用C#代码来实现在Google Map上动态...
- 提供了更高级别的控制能力,如异步回调方法。 - 适用于后台线程操作,可以更好地管理资源。 4. **System.Net.NetworkInformation.Ping**: - 虽然不是传统意义上的定时器类,但在网络编程中可以通过循环调用来...
6. Web服务(如WCF或ASMX):提供数据接口,供Ajax请求调用,以获取或更新服务器端数据。 通过以上知识的结合应用,我们可以构建出功能丰富且用户体验良好的Web应用程序。在学习和实践过程中,理解这些技术的工作...
- ASP.NET Web Services(ASMX)或WCF(Windows Communication Foundation)服务可以作为Ajax调用的目标,提供数据接口。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于传输Ajax请求和...
.NET提供了C#、VB.NET等编程语言,以及ASP.NET、WPF、WCF等开发框架,使得开发者能够高效地编写跨平台的应用程序。 SQL,全称Structured Query Language,是一种用于管理和处理关系型数据库的语言。在.NET开发中,...