如何在c#中超时构造函数

本文关键字:超时 构造函数 中超 | 更新日期: 2023-09-27 18:06:51

我正在使用IBM Websphere MQ 7.5.0.5,并且我发现在某些情况下,当服务器端关闭时,QueueManager的构造函数会挂起。这个构造函数被"using"包围子句,如以下代码。如何在一定时间后强制终止构造函数?

using (mqQueueManager = new MQQueueManager(this._queueManager, this._properties))

如何在c#中超时构造函数

您可以在函数中执行以下操作来实例化MQQueueManager:

       System.Threading.Thread thread = new System.Threading.Thread(()=>{
        using (mqQueueManager = new MQQueueManager(this._queueManager, this._properties))
        {
        }
        });
        thread.Start();
        var isComplete = thread.Join(TimeSpan.FromSeconds(30));
        if (!isComplete)
        {
            thread.Abort();
        }