C#线程执行超时处理与并发线程数控制实例

2019-12-26 11:58:00于丽
易采站长站为您分析C#线程执行超时处理与并发线程数控制的方法,实例讲述了并发执行存储过程的最大个数,读者可对程序稍做改动即控制并发线程数,具有一定的参考借鉴价值,需要的朋友可以参考下    

本文实例讲述了C#线程执行超时处理与并发线程数控制的方法。。具体实现方法如下:

特别说明:

1、为了测试方便,这里对存储过程的执行是模拟的

2、这里限制了并发执行存储过程的最大个数,但并没有对并发线程数进行控制,与文章标题略有不符,但程序稍做改动即可控制并发线程数

代码如下:

 

复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OracleClient;
using System.Diagnostics;
using System.IO;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using System.Timers;
using System.Xml;
using DBUtil;
using FQDService.Utils;

 

namespace FQDService
{
    /// <summary>
    /// FQD服务
    /// </summary>
    partial class FQDService : ServiceBase
    {
        #region 变量
        /// <summary>
        /// 存储过程配置文档
        /// </summary>
        public static XmlDocument doc;
        /// <summary>
        /// 执行存储过程线程数锁
        /// </summary>
        public static Object lockTreadCount = new Object();
        /// <summary>
        /// 执行存储过程超时时间
        /// </summary>
        public static int timeout = 1000;
        /// <summary>
        /// 等待执行存储过程时间间隔
        /// </summary>