如何使 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();
}
我正在使用 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();
}