现在的位置: 首页 > 综合 > 正文

webservice中使用队列

2012年03月14日 ⁄ 综合 ⁄ 共 1980字 ⁄ 字号 评论关闭
我需要用内存来代替数据库,从而避免频繁地操作数据库。

 

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Runtime.InteropServices;
using System.Drawing;

namespace SMSWebService
{
    /// <summary>
    
/// Service1 的摘要说明
    
/// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    
// [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        Queue queue = CQueue.Ini();//单例模式创建队列
        [WebMethod]
        public void InMessage(string mobilelist,string content,string sendtype,string sendtime)
        {
            //入堆
            NoSendMessage nsm;
            nsm.mobilelist = mobilelist;
            nsm.content = content;
            nsm.sendtype = sendtype;
            nsm.sendtime = sendtime;
            queue.Enqueue(nsm);
        }

        [WebMethod]
        public NoSendMessage SearchMessage()
        {
            //出栈操作
            NoSendMessage nsm=new NoSendMessage();
            if (queue.Count > 0)
            {
                nsm = (NoSendMessage)queue.Dequeue();
                return nsm;
            }
            else
            {
                return nsm;
            }
        }

        //信息
        public struct NoSendMessage
        {
            public string mobilelist;
            public string content;
            public string sendtype;
            public string sendtime;
        }
    }

    public class CQueue : Queue
    {
        private CQueue()
        {
        }
        static Queue q=null;

        public static Queue Ini()
        {
            if (q == null)
            {
                q = new Queue();
                return q;
            }
            else
            {
                return q;
            }
        }
    }

}

 

抱歉!评论已关闭.