[英]How to create a threadsafe c# exe wrapper
我正在尝试将HTML转换为PDF。
我已经检查了看起来不太复杂的PDFSharp和ITextSharp,但是那里有一个可执行文件wkhtmltopdf ,到目前为止看来效果最好。
我想将wkhtmltopdf控制台应用程序用作库。
我可以想象这种情况以不同的格式发生了,但是找不到足够具体的解决方案来使用。
有一个现有的C#wkhtmltopdf包装器库,但是它在部署和应用程序挂起方面存在问题。
我只需要传递一个.exe文件的电话,就像这样:
wkhtmltopdf.exe "www.adsf.com" convertedPdfOfAsdf.pdf
我想创建一个剥离以下线程的库:
我之前从未尝试过类似的方法,因此不确定是否这是解决问题的最佳方法,但是肯定有可重复的解决方案。
PS。 我的解决方案必须是线程安全的。 它将作为Web应用程序运行。
听起来您正朝着DLL地狱前进。 虽然您提出的解决方案可以在实例之间提供分隔,但是它可以非常迅速地迫使您陷入Unable to cast X to X
处理Unable to cast X to X
异常的情况。
我建议锁定对基础库的访问,并强制您的应用程序等待,或者考虑在线性执行同一代码的多个AppDomain中进行操作。
对于一个站点,我使用ConcurrentQueue
(这是一个线程安全的数据结构),以使其更容易添加到队列中,而我的使用者弹出下一件事要处理。
您可以在这里的问题中看到一个示例:
因此,只需让上传返回唯一的ID到javascript。
然后,javascript会查询网络服务器以查看文件是否已处理,在此之前,它将使用户知道状态(例如,可能有多少条记录在前)。
根据网站的制作方式和技术,这可能是一种更简单的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.