我有这个第三方库,它公开了一个Connect
方法,该方法没有任何形式的时间限制。如果失败,则会在许多分钟后引发异常。窥视似乎是使用TcpClient
进行的呼叫。
在我的代码中对3rdPartyLibObject.Connect()
进行时间限制的优雅方法是什么?
当然,我随时可以Task.Run()
进入它—
var task = Task.Run(() =>
{
return IHopeYouReNotInAHurryMethod();
});
bool completed = task.Wait(5000);
但是,除了CPU固定工作之外,这似乎不受欢迎,这绝对不是。