如何使 C# 中的构造函数超时?

How to timeout a constructor in C#?

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

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

您可以在函数中执行类似的操作来实例化 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();
        }