C# 如何处理外部不稳定的代码?
我有一个使用外部C# 如何处理外部不稳定的代码?,c#,asp.net,com,C#,Asp.net,Com,我有一个使用外部COM对象(pvxcom)的asp.netwebapi 2应用程序。由于COM对象挂起的某些原因,我没有机会报告pvxcom的错误 我需要想办法绕过这个问题。我想澄清几点 如何设置外部源的最大执行时间 如何强制浏览器重新发送请求?(可能吗?) 如何确定COM对象挂起在哪个过程中 处理com对象并重新创建是一种良好的做法吗 您还有其他想法吗?如何解决它?您可以在一个线程中运行它,如果该线程挂起或比预期的时间更长,您可以终止该线程 这是我的MVC草图,但WebApi代码将是相同的。这
COM对象(pvxcom)的asp.net
webapi 2
应用程序。由于COM对象挂起的某些原因,我没有机会报告pvxcom
的错误
我需要想办法绕过这个问题。我想澄清几点
如何设置外部源的最大执行时间
如何强制浏览器重新发送请求?(可能吗?)
如何确定COM对象挂起在哪个过程中
处理com对象并重新创建是一种良好的做法吗
您还有其他想法吗?如何解决它?您可以在一个线程中运行它,如果该线程挂起或比预期的时间更长,您可以终止该线程
这是我的MVC草图,但WebApi代码将是相同的。这是基于:
谢谢,但我也想得到我问题中3,4点的答案。
public ActionResult Index()
{
var sw = new Stopwatch();
Exception threadException = null;
var workerThread = new Thread(() =>
{
try
{
sw.Start();
// Access your COM here instead of sleep
Thread.Sleep(6000);
sw.Stop();
}
catch (Exception ex)
{
threadException = ex;
sw.Stop();
}
});
var timeoutTimer = new System.Threading.Timer((s) =>
{
workerThread.Abort();
}, null, 5000, Timeout.Infinite);
workerThread.Start();
workerThread.Join();
ViewBag.Message = String.Format("Time: {0}; Exception: {1}", sw.Elapsed, threadException);
return View();
}