oO飛翔的馒头Oo 2016-07-07 08:36 采纳率: 16.7%
浏览 1937
已结题

求助c#通过线程池去数据库查询,结果很多任务超时怎么办

查询比较特殊,简化下语句的大概含义是Select * from Table where (col >=3000 and col <=3001) or(col >=3050 and col<=3055) or......
where条件非常长,基本相当于从千万级以上的数据库中,查询几百个区间段内的所有数据,实际业务要更复杂些,大概意思是这样,通过C#的线程池连接访问数据库,结果很多超时,该怎么办,正常如果只开几个线程应该不会超时的,感觉线程池疯了一样开线程,如果单线程只需要几秒就能返回结果,可是用了线程池,设置连接超时为1分钟以上都不行,感觉数据库完全吃不消
用的SQL2008

  • 写回答

2条回答 默认 最新

  • _1_1_7_ 2016-07-07 09:05
    关注

    控制一下线程数:
    对于线程池主要的控制有控制线程数大小:

    ThreadPool.SetMaxThreads 方法
    public static bool SetMaxThreads(
    int workerThreads,
    int completionPortThreads
    )
    参数:

    workerThreads
    类型:System.Int32
    线程池中辅助线程的最大数目。
    completionPortThreads
    类型:System.Int32
    线程池中异步 I/O 线程的最大数目。

    评论

报告相同问题?