none
调用webservice问题!关于锁的 RRS feed

  • 问题

  • 我写了一个webservice,网页调用这个webservice,很多人可能同时调用,这个webservice里面又插入数据并查询的操作,我没有做任何lock的判断,不知道这样会不会有影响,如果同时调用的时候需要做怎样的限制?能防止非正常情况的发生? 就这样了,多谢高手赐教啊!
    2009年12月24日 7:51

答案

  • 正如你所说 你可以尝试加锁来达到数据的同步

    在插入数据库的代码前后加上lock 
    private static object sync=new object();

    public void Update()
    {
    Moniter.Enter(sync);

    //这里更新数据

    Monitor.Exit(sync);
    }

    如果你要限制同时访问的线程数 可以通过Semaphore类来限制信号量
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    • 已标记为答案 Mog Liang 2009年12月31日 2:03
    2009年12月24日 8:14
    版主
  • 如果需要在一个service method 中执行多个sql操作,要使用事务来确保ACID特性.


    Mog Liang
    • 已标记为答案 Mog Liang 2009年12月31日 2:03
    2009年12月28日 5:05

全部回复

  • 正如你所说 你可以尝试加锁来达到数据的同步

    在插入数据库的代码前后加上lock 
    private static object sync=new object();

    public void Update()
    {
    Moniter.Enter(sync);

    //这里更新数据

    Monitor.Exit(sync);
    }

    如果你要限制同时访问的线程数 可以通过Semaphore类来限制信号量
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    • 已标记为答案 Mog Liang 2009年12月31日 2:03
    2009年12月24日 8:14
    版主
  • SQL会替你做这些的吧,一般不会把数据库搞乱的,除非你是写你自己的文件或者内存
    2009年12月25日 4:40
  • 如果需要在一个service method 中执行多个sql操作,要使用事务来确保ACID特性.


    Mog Liang
    • 已标记为答案 Mog Liang 2009年12月31日 2:03
    2009年12月28日 5:05